<SEC-DOCUMENT>0000950170-24-104426.txt : 20240906
<SEC-HEADER>0000950170-24-104426.hdr.sgml : 20240906
<ACCEPTANCE-DATETIME>20240906170334
ACCESSION NUMBER:		0000950170-24-104426
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		74
CONFORMED PERIOD OF REPORT:	20240731
FILED AS OF DATE:		20240906
DATE AS OF CHANGE:		20240906

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			OOMA INC
		CENTRAL INDEX KEY:			0001327688
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-COMPUTER PROCESSING & DATA PREPARATION [7374]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				000000000
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			0131

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

	BUSINESS ADDRESS:	
		STREET 1:		525 ALMANOR AVENUE
		STREET 2:		SUITE 200
		CITY:			SUNNYVALE
		STATE:			CA
		ZIP:			94085
		BUSINESS PHONE:		6505666610

	MAIL ADDRESS:	
		STREET 1:		525 ALMANOR AVENUE
		STREET 2:		SUITE 200
		CITY:			SUNNYVALE
		STATE:			CA
		ZIP:			94085
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>ooma-20240731.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- DFIN New ActiveDisclosure (SM) Inline XBRL Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2024-09-06T11:04:04.3814+00:00 -->
<!-- Copyright (c) 2024 Donnelly Financial Solutions, Inc. All Rights Reserved. -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:nonNumeric="http://www.xbrl.org/dtr/type/non-numeric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:calc="https://xbrl.org/2023/calculation-1.1" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2024" xmlns:ooma="http://www.ooma.com/20240731" xmlns:srt="http://fasb.org/srt/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2022-02-16">
 <head>
  <title>10-Q</title>
  <meta http-equiv="Content-Type" content="text/html"/>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric id="F_1c782f9e-4bcf-4143-b235-69209e052516" name="dei:CurrentFiscalYearEndDate" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">--01-31</ix:nonNumeric><ix:nonNumeric id="F_5cb16b3c-f89d-4d99-a4bc-693aa79ca66e" name="dei:EntityCentralIndexKey" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">0001327688</ix:nonNumeric><ix:nonNumeric id="F_e69084ea-f5af-41e8-ae4e-3b06b921f89f" name="dei:AmendmentFlag" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">false</ix:nonNumeric><ix:nonNumeric id="F_149bf167-1939-4cd6-b02e-b3d04865452b" name="dei:DocumentFiscalPeriodFocus" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">Q2</ix:nonNumeric><ix:nonNumeric id="F_192d008e-b356-4213-8a3b-a00c8bd9f322" name="dei:DocumentFiscalYearFocus" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">2025</ix:nonNumeric><ix:nonFraction id="F_ec580fb8-a06d-43d6-a6a1-1d6a15fe6344" name="us-gaap:CommitmentsAndContingencies" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" unitRef="U_USD" xsi:nil="true"/><ix:nonFraction id="F_548c964a-9207-4260-8b78-a744a0f073f6" name="us-gaap:CommitmentsAndContingencies" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" unitRef="U_USD" xsi:nil="true"/><ix:nonNumeric id="F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092">http://www.ooma.com/20240731#AccruedExpensesAndOtherCurrentLiabilities</ix:nonNumeric><ix:nonNumeric id="F_cdb13912-9734-4f23-8fba-675ba3625e01" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30">http://www.ooma.com/20240731#AccruedExpensesAndOtherCurrentLiabilities</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="ooma-20240731.xsd"/></ix:references><ix:resources><xbrli:context id="C_811dd9c0-a330-44ef-8e5e-fca80238bd85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8389226e-0559-4db8-bd28-1e66c1579d3d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8516e2cc-81a9-44e6-907d-bf8b6d2d89be"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-08-01</xbrli:startDate><xbrli:endDate>2023-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_85f605d7-f321-40fa-81df-72dcd9044696"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8681facc-dffb-4541-baff-6d6202549110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8830337b-df52-4c5b-ae8c-7710f3292f5c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_88826bd9-9646-43d9-87a9-ef42835ba1bf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8aa8ea4b-29fe-450c-afcc-b223ab3cf9fa"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8c1da4ef-0cbb-42a1-8223-32033f472940"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8e974ebe-a10f-4e85-96b3-adc88d345dcf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_95187883-d284-43d3-8633-3b7f847d82ef"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_968a6f21-78a7-4f49-b4b6-805f7283fa07"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9a4d67ed-73e6-4185-a018-64f698e71c20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9cc79828-49a5-4afd-86f6-1aef7ef17498"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9d72307d-87c6-4e4b-a4c1-a0f04dc8c9e5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a4ccc371-2be4-4b6e-9956-a60e76834c63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a78f120b-2259-42f0-9736-5cb10fb93a1b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a8b3e177-5416-4595-a8e6-ac943e6ed9da"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_aa6f2c7d-c32e-4d4f-81b0-eaef2a879d64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</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">ooma:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_aab39870-5b47-4195-85f6-66d06c02badc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ac87bc7f-9032-45e8-b4bc-030cd670bfb8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_af7882e2-ac80-4cae-8f3c-37a83dd5b2ac"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_afad6cff-d187-4932-a282-738faa2ae81b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b35fb8e0-a38a-46b5-846a-1cdd5a49abf5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">ooma:JamesAGustkeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b4afac33-dffe-4d1b-b038-3a2fa1f251ef"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b991c8b4-9f89-41e6-a295-3d2f682a896e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b9df152b-327a-4710-a87a-df2a8ba0a9c6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bada150e-1804-484b-a975-897a4e02ba88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:JunctionNetworksIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c0bf0121-9b2a-436c-bb6a-a706f283568e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c74b23f2-81c2-4293-bf43-153f3ecaf755"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_cb05bb13-709b-4f0c-bf23-36771a586c30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_cba8a689-d6e2-4222-bc0f-37c9ab83063f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_cbe4c152-825f-4c5d-b586-12b9642ccee3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ce482314-1107-439b-af19-432cf0ee6ecc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d0aa6afb-5424-47d6-8c57-51f531588c3f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d165fd73-7871-4572-b165-fa00b038d5de"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-08</xbrli:startDate><xbrli:endDate>2021-01-08</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d3160528-5984-4b87-aa53-c12d0fccdebf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d3adecf1-a558-4ea3-aa8f-240f9b08a42c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_dd2082e5-119e-47db-a772-929ecc8d2f58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_de5fd78c-e442-4de0-b49a-6c842fca68f4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e39ffed3-48ca-4219-918f-2c5d02a5e0ca"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e73a2722-4182-45da-b428-1c7d1f66fe1f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_eb3a8f55-0cc5-46d5-8010-308801d274c0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ee4e2f31-abed-4aa0-87bb-dab4d957ff79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ef07da5d-6520-476b-9216-5599d8b43d8f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f0479a5b-5a38-497a-80ff-7791e3784b6c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f2435b6d-cacd-471d-bbc4-1bdba910db58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f410d6a3-09cc-46ad-b738-d75b0bb1c6a9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f4e3584a-fb2a-4793-99a2-add62be23141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f60f1e40-9a6a-4872-bc38-e5d122609bf6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fb246d1a-98c3-410d-9b4c-792f4f501248"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fbb07a33-a422-482f-a0d2-b414ce11ac77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-08-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fc42afea-8932-4b6a-a619-45b81296e3ff"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fd2bca62-627b-4224-a093-65b115769150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fe5ff670-e4da-4744-b17f-9010efe8dd1d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ff320936-ff72-4b90-b0ec-8cace249bfac"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_001c6846-db0d-46db-8dcd-7a77b5744a83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_077966b7-6eee-4738-a43f-66b7ae93d1ce"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-08-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-03-08</xbrli:startDate><xbrli:endDate>2024-03-08</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0e7d41e2-7772-441f-bea9-509c5b42325a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0fe19e6c-342e-4acd-ad99-1c9b9e48a88b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_10d06e7e-5aec-40f0-87d2-6b340b336c67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_122fdbbd-8f22-48ea-8d14-7412d05fabe3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_147ff029-0d39-4182-b2ed-5fafbcfb721e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_148d2984-35e4-45be-a2a1-787c7f65709c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1623ddf1-043e-4b92-92f6-72c1c7519ef9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_1a96aa66-e0e2-4fb9-9b90-e210f298731c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</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">ooma:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1b52bd25-4f88-4e0c-a1fd-55bc797c76b2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_1d623869-39ae-434c-8174-893d15134e5f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1f3b2012-e409-4348-9076-efc8fa2bd15c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithCloudServiceProviderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_20fe6eb1-2de1-4cdc-a0eb-8a020cb322ec"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_213d6e40-df68-49ff-86a8-7ba47f81da89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_22a33c2c-f968-47ad-888f-413dcc946735"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ooma:ConvertiblePromissoryNoteMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_26a9200f-2b97-4fce-a5c6-1c32d16a7f0f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_26af025e-1ef9-405a-b00c-86f77fa8f355"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_27014afa-2df6-436a-927d-2e223edddefd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2946deff-e8bd-42d3-ba6b-bb0bacc433c9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2a9ca0c3-9be9-4ba2-a355-51dbe6f30ed2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2d5d1911-8e7c-4584-9fcc-ebe4f3316d1c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_32c9db7a-ba31-4b2f-af90-0e45725fdbb0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_334e0d35-6986-4c0e-8e89-9034cc6941a6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_34dbe02b-4fae-49e8-9343-22b04152ba7a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_35b0e141-cb2d-4dff-9f8d-bbf7907cb2e2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_38017c8d-6d39-4aa1-a96d-4f8c39224d8c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_38ebbb41-fa1a-496a-ac23-c8002747b4a0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_40f7cf8b-ac49-4aed-8619-7f0bedbd607e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_485746e9-62e4-4ee0-b53c-f6660c764c03"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_521d54f0-2514-4e13-8fb7-eda813d6e631"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_597414ab-347e-4aac-a222-07895a42c130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithTelecommunicationsProviderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_5aa1deee-a600-4749-b6b3-af4f2aa4ead6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5f347f22-26b2-4844-8e1b-763ae3f05973"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-06-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5fbd1f80-4685-4a9d-a079-78b2e2ce8e0a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_619e96e0-c484-4410-8010-213587e77064"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">ooma:JamesAGustkeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_66c70309-2f8d-4db2-89ad-861454d4db11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_68320a32-ec74-4f41-b87e-f2dd9674bf3a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_69c94376-c854-411e-b064-24a5951d6e6e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_69edfdd7-0a0d-4914-9d6d-9d8ae399542c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6bd829b0-c089-4ceb-a7bc-b19d5827cb84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6c762824-ddef-45af-8d13-01a59896f092"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6ca2a331-38b1-4579-9da0-21cd04af9939"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6f112919-07fd-4967-b68e-a8cbf59c731f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_71a65c70-38e3-4287-87d9-dfeedfd7069b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:OnsipMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_76076364-b658-47aa-8569-630b56e80ed3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_77602efe-4a7c-492a-be74-f673570eb250"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_77cde952-5e65-4527-93b2-0ce3ff09e5da"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_780b8acc-e21f-4fbb-9417-988d2ba39f96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_78b87d2b-cf13-4d7a-894e-3578766e98fc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7cc4f3cb-dc19-4350-8d70-cdb7e5355f64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7d01b726-dc78-47a4-82d5-a8dc04148e08"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7e2e3a64-462e-4311-9552-e6aac227ba86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7f80baaa-7364-4cc0-a255-5c65700c53d9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-20</xbrli:startDate><xbrli:endDate>2023-10-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="U_Country"><xbrli:measure>ooma:Country</xbrli:measure></xbrli:unit><xbrli:unit id="U_UnitedStatesOfAmericaDollarsShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="U_pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U_shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U_Customer"><xbrli:measure>ooma:Customer</xbrli:measure></xbrli:unit><xbrli:unit id="U_Source"><xbrli:measure>ooma:Source</xbrli:measure></xbrli:unit><xbrli:unit id="U_USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" fromRefs="F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d F_269afa3d-6d0e-460f-a875-ff85c603d317 F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5 F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248 F_f157cd43-3b57-4488-b768-67b1d0f09d01 F_cdd7a789-5013-4240-a53c-f29691df1e49 F_3e37df84-2351-4c02-8279-b981578905bd F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61 F_c1a07101-3ee3-48cb-9810-c3367b92c1d8 F_74df9102-1ee2-42eb-a646-12e8c13d0e2f F_6421daa6-2960-47d6-a9bc-55d504bd91db F_331236f8-3e1d-47bc-af95-3ac36c82ed62 F_c96b052f-590a-43e8-94b7-cef3ddb15edd F_fa789cd7-9676-4b25-9f0c-604a4ac5695f F_a0180243-6949-4df7-8356-51b5228517a7 F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6 F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2 F_2332af69-1803-4f12-9b80-76be6faa6679 F_13b54e13-4f1c-4681-8596-38b50f30c98a"/><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" fromRefs="F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb F_487f8fcf-450c-478b-b6ad-55c4c8f56547 F_cf63ad53-9b75-4285-bddf-cbb69889d719 F_f217e5dd-7930-4dbc-b022-97b6c798a143 F_b4b1fffe-05e5-4d42-a196-06081764438c F_02f3002c-57f0-480c-9212-43946ae6f564 F_0041b266-6d00-4aa1-82d4-1e94ca7589e4 F_a4807772-e2dc-4b20-82fd-160935e09e79"/></ix:resources></ix:header></div>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt double;text-align:center;"><span style="white-space:pre-wrap;font-size:1pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">UNITED STATES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">SECURITIES AND EXCHANGE COMMISSION</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">WASHINGTON, DC 20549</span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Arial;min-width:fit-content;">FORM </span><span style="font-size:18pt;font-family:Arial;"><ix:nonNumeric id="F_bad371b5-d433-4724-84d6-b89598e77c55" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:DocumentType"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Arial;min-width:fit-content;">10-Q</span></ix:nonNumeric></span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">(Mark One)</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:5%;"/>
    <td style="width:95%;"/>
   </tr>
   <tr style="height:12pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_12b470f9-bc0f-428a-b94e-0e3d0ab7f3a3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:DocumentQuarterlyReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p></td>
   </tr>
  </table>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">	</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">For the quarterly period ended </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f5e8c64d-57d2-4736-a5a7-6f4c792d3ea1" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_192d008e-b356-4213-8a3b-a00c8bd9f322;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">2024</span></span></span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">OR</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:5%;"/>
    <td style="width:95%;"/>
   </tr>
   <tr style="height:12pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_6265d47b-2629-416c-a245-25eef246b777" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p></td>
   </tr>
  </table>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">	</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">For the transition period from </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Arial;min-width:fit-content;">                 </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> to</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">                 </span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Commission File Number: </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_3b3cc1f3-f818-43b1-bb29-d52e69e02776" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityFileNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">001-37493</span></ix:nonNumeric></span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:24pt;font-family:Arial;"><ix:nonNumeric id="F_744405ae-d7a8-4eb1-af79-e265a286cd8a" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityRegistrantName"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:24pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;min-width:fit-content;">(Exact Name of Registrant as Specified in its Charter)</span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:51.02%;"/>
    <td style="width:48.98%;"/>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_910e24bb-f50e-4f85-8f37-c6a6a862e604" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Delaware</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_6b23def1-d74c-48d5-be41-063852dbc869" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityTaxIdentificationNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">06-1713274</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:8pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(State or other jurisdiction</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">of incorporation or organization)</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(I.R.S. Employer</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Identification No.)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_b10c6724-cb00-443a-a551-b12299db56a8" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityAddressAddressLine1"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">525 Almanor Avenue</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_c89b8e60-821e-4475-aaf5-f626f82d17ce" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityAddressAddressLine2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Suite 200</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_1fe8fa25-f459-43ed-8b03-d5e9c50556fe" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityAddressCityOrTown"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Sunnyvale</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_ccb1fbbf-df18-4c60-be20-dead187799fd" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">California</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_850c1fb9-ddce-43be-b02c-bbef21271851" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityAddressPostalZipCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">94085</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;min-width:fit-content;">(Address of principal executive offices)</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_d7550dd5-3ad2-4157-9dd3-63183818b274" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:CityAreaCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">650</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">) </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f954933b-aae4-46f3-8931-7cf6e74b8d40" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:LocalPhoneNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">566-6600</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;min-width:fit-content;">(Registrant&#8217;s telephone number, including area code)</span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Securities registered pursuant to Section 12(b) of the Act:</span></p>
  <table style="margin-left:1%;border-spacing:0;table-layout:fixed;width:99.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:35.84%;"/>
    <td style="width:29.16%;"/>
    <td style="width:35%;"/>
   </tr>
   <tr style="height:7.2pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="padding-left:0.075in;vertical-align:bottom;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Title of each class</span></p></td>
    <td style="padding-left:0.075in;vertical-align:bottom;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Trading Symbol</span></p></td>
    <td style="padding-left:0.075in;vertical-align:bottom;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Name of each exchange on which registered</span></p></td>
   </tr>
   <tr style="height:4.3pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_f7748836-f851-44df-8359-43a10746dc2c" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:Security12bTitle"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common Stock, par value $0.0001</span></ix:nonNumeric></span></p></td>
    <td style="padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_814f9ecf-7733-4950-af24-2fb797a0dd87" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:TradingSymbol"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">OOMA</span></ix:nonNumeric></span></p></td>
    <td style="padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_d0e743ba-6764-4f81-8b6a-5bffa6fce83c" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">The New York Stock Exchange</span></ix:nonNumeric></span></p></td>
   </tr>
  </table>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">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><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_8e2ed8c9-dd90-4630-8490-783db9b4ad1c" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityCurrentReportingStatus"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9746;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">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><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_3515001c-3739-49e5-850d-502df8f629a1" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityInteractiveDataCurrent"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9746;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:21.1%;"/>
    <td style="width:1%;"/>
    <td style="width:53.62%;"/>
    <td style="width:1%;"/>
    <td style="width:20.34%;"/>
    <td style="width:1%;"/>
    <td style="width:1.94%;"/>
   </tr>
   <tr style="height:10.8pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Large Accelerated Filer</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_5c6690cc-3bcf-4d1c-aa3e-7127bf23cbe3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityFilerCategory"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accelerated Filer</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9746;</span></p></td>
   </tr>
   <tr style="height:3.6pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Non-Accelerated Filer</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Smaller reporting company</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_bacb1dff-e031-4114-8a43-d67db48fdb91" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Emerging growth company</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_def94246-682f-48ef-9452-1f7c80378001" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">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.    Yes  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).   Yes  </span><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_0f6e3f31-eb05-4c83-abc4-126c932a0daa" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="dei:EntityShellCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">  No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;min-width:fit-content;">&#9746;</span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">As of August 30</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">, 2024, there were </span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c42b78eb-e0fb-4614-8e36-e09dd7c83c6e" contextRef="C_fbb07a33-a422-482f-a0d2-b414ce11ac77" name="dei:EntityCommonStockSharesOutstanding" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">26.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"> million </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">shares of the registrant&#8217;s common stock outstanding.</span></p>
  <p style="border-top:2.25pt double;padding-top:1pt;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">TABLE OF CONTENTS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:90.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:10.598%;"/>
    <td style="width:84.784%;"/>
    <td style="width:4.618%;"/>
   </tr>
   <tr style="height:8pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;border-bottom:1pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Page</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td colspan="2" style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span><a href="#part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">PART I. FINANCIAL INFORMATION</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 1.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_financial_statements"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Financial Statements (unaudited):</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_balance_sheets"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Condensed Consolidated Balance Sheets</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_operat"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Condensed Consolidated Statements of Operations</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_cash_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Condensed Consolidated Statements of Cash Flows</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_stmts_of_equity"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Condensed Consolidated Statements of Stockholders&#8217; Equity</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#notes_to_condensed_consolidated_fs"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 2.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_managements_discussion_analysis_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">18</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 3.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_3_quantitative_qualitative_disclos"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Quantitative and Qualitative Disclosures About Market Risk</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">27</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 4.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_4_controls_procedures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Controls and Procedures</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">27</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td colspan="2" style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span><a href="#part_ii_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">PART II. OTHER INFORMATION</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 1.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_legal_proceedings"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Legal Proceedings</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">28</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 1A.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1a_risk_factors"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Risk Factors</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">28</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 2.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_unregistered_sales_equity_securit"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Unregistered Sales of Equity Securities, Use of Proceeds, and Issuer Purchases of Equity Securities</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">60</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 5.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_5_other_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Other Information</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">60</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Item 6.</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_6_exhibits"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Exhibits</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">60</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#signatures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Signatures</span></a></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">62</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">2</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PART I &#8212; FINANCI</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">AL INFORMATION</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1_financial_statements"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 1. Financ</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">ial Statements</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">OOMA, INC.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_balance_sheets"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">CONDENSED CONSOLIDA</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">TED BALANCE SHEETS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:69.28%;"/>
    <td style="width:1.4%;"/>
    <td style="width:1.4%;"/>
    <td style="width:12.56%;"/>
    <td style="width:1.4%;"/>
    <td style="width:1.4%;"/>
    <td style="width:12.56%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Current assets:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cf7a7c35-7f4a-4aea-bdab-b113871e118b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,585</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d94c4b26-1ac1-40f2-a4e5-659a138e6ab3" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,536</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts receivable, net</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e75e4a2-bc5f-407b-a755-7838594139fd" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,189</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_640c3779-c713-4299-8455-cefc53e15de8" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,864</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inventories</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1ac4c50-28b5-4198-8dcf-44a506ca2ca8" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,237</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e10c85d-7059-4ecf-b15d-49fba9c760c3" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,782</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6dc33e7d-d82a-4473-a2dc-005522105f43" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,559</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_217c3cae-2ab9-4132-9c31-d2fa21a712c6" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,497</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total current assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0a36560e-871d-4fc6-b40b-299ece599320" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">55,570</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d24dc857-1d39-49c1-871f-0b93b74757d4" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">63,679</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Property and equipment, net</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8154cb71-a77f-42cd-9601-d765afa3537a" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,957</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5bea0f6-366e-4d5f-ba76-bb11cbd04090" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,897</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_90d6d4b3-3bb5-4535-94dd-7f54ea32e7f6" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,833</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_46028ea6-c5be-4a7a-8099-2b41dcac27ed" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,041</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Intangible assets, net</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88c9e3ca-d88b-4abd-ae06-31bcdb0f4b7a" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,997</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3d24d26f-4e4a-406e-89d5-8cfdccc200a3" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,952</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Goodwill</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c7fdb6ce-9334-4982-9b6a-f224e7c3d486" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,069</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bb2fb838-015a-4927-b3f9-3477ea801de1" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,069</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9e3b6ec6-07b4-4bd8-8545-3dc2aae23d37" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,044</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_87283278-2b37-4cd0-ae84-7f39f1909330" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,615</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8a7177dc-ac49-41a2-947b-c6bc47867596" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">151,470</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bfeee25c-f0ec-4444-9b44-1455e416b88b" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">159,253</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:28pt;vertical-align:bottom;"><p style="margin-left:28pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Liabilities and Stockholders&#8217; Equity</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Current liabilities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts payable</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6f68f620-e29b-46b0-b26a-961c851c9495" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,967</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_278148ab-bc26-4eed-a708-e4206a552603" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,848</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accrued expenses and other current liabilities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d6fe1932-58c7-4f91-8533-25941ad7b51c" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,388</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_75cada70-2d2f-4c7a-a3d4-caaeb3da08bd" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,586</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_993f17ee-0883-4461-a19a-de9e154503c4" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,123</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_37195818-6db0-4cf2-bb5c-8cec9292587f" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,041</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total current liabilities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7bc7ccfb-86ae-4652-9fd3-aff2abf00033" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">48,478</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5e825295-a6fa-4de3-b4d9-5ad1d958e664" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">51,475</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e0ec29b4-291e-47ca-ae0c-ea6f18cb3c88" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,635</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1bae064-da86-4e15-9304-68760b47f4b2" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,676</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Debt, net of current portion</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_00388785-b3f3-4fea-a216-bc57627b647b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,500</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_701421bc-e7e8-4ba3-85a4-137dd1f6bd3f" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,000</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1866586c-a381-4a12-b9ba-2231aa8f437e" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5e519566-1f61-44dd-9fda-afa09ad2435b" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total liabilities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d53c8e45-c394-4bed-a85b-9ed14f0e4544" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">69,631</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_174f415d-d856-42ad-a8b4-245aef7490ea" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,166</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_ec580fb8-a06d-43d6-a6a1-1d6a15fe6344;"><span style="-sec-ix-hidden:F_548c964a-9207-4260-8b78-a744a0f073f6;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Commitments and contingencies (Note 11)</span></span></span></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stockholders&#8217; equity:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Common stock</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ea2c464c-02a7-4914-a10b-b8256cde1701" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_38680c26-7917-473a-9352-4f5b83c08b8d" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Additional paid-in capital</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_af85c809-5703-428f-bedd-abdb632e017c" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:AdditionalPaidInCapital" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">219,388</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9564a161-f4fb-4aed-883e-c1891e810449" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:AdditionalPaidInCapital" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,361</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accumulated other comprehensive loss</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_17ddf007-6f94-4b9f-bf4d-475afe35670c" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accumulated deficit</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4d3bf8af-ad8a-4795-bf03-691865f5aabf" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">137,554</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ef6275f1-24e4-48b3-af21-87f2d6417300" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">133,278</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:21pt;vertical-align:bottom;"><p style="margin-left:21pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total stockholders&#8217; equity</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e17aa457-67a1-4708-8ff8-813211ba2575" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,839</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1578bfa6-d8d1-454a-a0ca-944d33f33768" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">78,087</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total liabilities and stockholders&#8217; equity</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_63b73c98-d8bf-43ab-8adb-91c65170e9db" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">151,470</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fe00174c-83d3-4356-bbcc-4233594931b3" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">159,253</ix:nonFraction></span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">3</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">OOMA, INC.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_operat"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">CONDENSED CONSOLIDATED S</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">TATEMENTS OF OPERATIONS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">(Unaudited, amounts in thousands, except share and per share data)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:43.794%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Revenue:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6f87ff06-a09a-48d3-b19e-eff49f98c8dd" contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,566</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_356afe7a-fffa-43d8-beb5-82e3579a06c6" contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">54,726</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_083c1af7-1f9a-4ec8-bf21-9083fcca9b80" contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">117,955</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_65427742-de87-4c64-835c-54b876fb29c1" contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">107,775</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7125035d-61cf-46d3-8aae-1dd9805606ee" contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,563</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f1bc0a08-b7ee-44f7-ac47-39741fb32d4c" contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,627</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_516d740f-4756-4a46-bbea-c0873040dc9d" contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,673</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_05d50a31-ee76-4659-a7ca-7485e15b9771" contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,430</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0f4294f1-5729-4a95-855e-bf42146dfe90" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,129</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_537e1936-5ce8-46e3-b972-e88382f8c273" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">58,353</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5e43317-b3b9-4c2b-a61d-7194c6ed6650" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,628</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_32880b62-d94e-4e6f-b538-375089e5739e" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">115,205</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cost of revenue:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2da5b62f-09f8-44b4-bb65-21aaaf2435d7" contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,654</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c6a81e99-b458-47f7-be78-317a65a366a0" contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,456</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e962b682-13c6-44fa-80d5-fbb35debc33c" contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,114</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cc059efe-8be5-4ed2-9951-a9690ea8dd24" contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,181</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_91f5c548-2b43-47b4-b362-fab108597993" contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,775</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1a2e2a94-8b6c-48ee-b8ae-80a4d3503106" contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,309</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_483fd413-4fc7-47c9-b30d-e1e3009e36fa" contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,699</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_05d79176-4f15-4e1a-a111-01c7a6b90900" contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,484</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total cost of revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b089cdf9-ba71-4ac8-a4fb-4c826e50b3a1" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,429</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6ba06f51-615f-41e2-891c-96f818da8b13" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,765</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4b829a79-4127-4a2f-bc95-20aa9e9a5878" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">49,813</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_37ba54c5-99bd-4def-999f-f288273de037" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">42,665</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross profit</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_305c3aec-d25e-42fb-8d9c-b8eda75d0809" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,700</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4b492641-3b32-414d-86ae-061209710355" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,588</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1b600821-dbf4-48e5-89a4-3e6d482b5c7d" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">76,815</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7a857d57-1279-441f-82ba-f212d0ac7d73" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">72,540</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Operating expenses:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_69a12bcd-ac4d-4e6e-9e35-beeafce12946" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,256</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0c91472f-9bec-4390-8ca4-c1ff2cbbf5df" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18,842</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6061244d-96bf-491e-96ef-702cc2c25887" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,737</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_28a8077d-2814-400e-a2ae-e8af9f5d8f49" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,832</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f750feb7-74af-4191-86ea-87eb5b074daf" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,640</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_23161d76-9199-4890-bec8-934e8086561b" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,768</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_91e8a6ed-df1b-4fa2-9ddd-0c0201aa294f" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,433</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7ddb6732-7284-4862-ac4e-09d415683b79" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,721</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_81d91651-b44b-4fb2-ab41-41a612482bd7" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,400</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_02b11283-3c5c-4456-940b-24a37d4e72f7" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,972</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c46d33c9-e70c-4ccd-809f-c9b2b83d2aa8" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,978</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2ed3c98c-6b28-4475-b748-f4c24bf765b3" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,589</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total operating expenses</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_171daf68-753a-42d9-8de9-0a9b95512a8d" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">40,296</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8cd25c5a-a328-4382-af57-3867a6cd70bd" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,582</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd3b0109-0a1d-437f-a3c5-7b46937c5047" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,148</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_371f80e8-9a47-4fec-9960-6e02324f1806" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">73,142</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(Loss) income from operations</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aed36c2d-6ec4-416e-92dc-b9fe97c46ce1" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,596</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4c9c5376-ec06-4a3b-9e0d-e513fb37024a" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3d93a0c1-221f-42f8-9022-e457ed62d8d4" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,333</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5b2a3c84-f66e-4c90-b8dc-45f6e9fd7f30" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">602</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Interest and other (expense) income, net</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8dcca560-8909-4782-a7b9-8d22095fbbdd" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">103</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_28698f1c-d691-4dc0-8e9c-f9cdd0e709c5" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">532</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0060f2fe-77d4-41c9-9d0c-dbd8fb66f98c" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">820</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ea2917d2-1f4c-47cc-917f-523feb7b7fe1" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">947</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(Loss) income before income taxes</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f2f5a713-1e63-4f2f-b0ad-97e6ab73c595" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,699</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c07a6511-e427-4fb0-8b31-6830cefa94d7" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">538</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9e0c8f2c-1283-4d54-85bb-314705538511" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,513</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cd1eaa9b-d17d-4dcb-9898-d84a0527e42b" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">345</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Income tax provision</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_93664862-3f3f-49e6-9c3a-540b2c246fb8" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">438</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b3ad1505-fa7c-4398-8e94-6887a1069ebb" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">267</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b4dde733-c70d-4957-8546-d7200cd9474c" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">763</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f2e692b4-062d-45a5-9e49-c6219f6a7ef7" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">400</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net (loss) income</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ede23f70-ab9e-4dad-8e7f-de3ea32b5654" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ffaa0ae4-1393-46fb-91cb-adc3c0b30950" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a2499c91-3651-4953-8f62-d71698018950" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3283effc-9060-4f50-8f9d-0ffc34bc8cd0" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">55</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net (loss) income per share of common stock:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic and diluted</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_818ef1ba-5461-4098-809b-1ef4243419f8" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_c88d4fad-c518-4aa4-82e4-98c899076883" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c4e14dfd-f1fc-41a2-bc42-1da14b314483" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal"><ix:nonFraction id="F_9c289c00-2712-430e-99f7-d0305b957bb4" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_eaa62782-5ed5-4195-bcad-c4d493dbf722" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_c165537e-6e22-4514-85a5-9fcd096d3509" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_171cd7aa-a318-4c4d-8b01-2f5926e7f71b" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal"><ix:nonFraction id="F_2be68d49-1fa2-4e5e-8d8c-4501ac8fb681" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.00</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average shares of common stock outstanding:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e7ae0a3f-52c8-4619-9740-babf1106ceb1" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fd965945-e5e4-4274-a323-2c4340b2c465" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,330,545</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c14cd365-9533-4114-b37d-40df40a6e529" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8593d20e-8ae1-4a2f-abc4-d9338c54433b" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,327,255</ix:nonFraction></span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Diluted</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_134a638f-e0cd-4dfa-a6b6-1eff829fca22" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f6e45a4e-a314-4d03-89d1-de60fb8963ed" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,935,018</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1158d501-efd7-4136-9a6c-540262516d50" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ac2dfea2-7719-4efa-a60e-e84ad578d7c4" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,327,255</ix:nonFraction></span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">4</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">OOMA, INC.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_cash_f"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">CONDENSED CONSOLIDATED S</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">TATEMENTS OF CASH FLOWS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:66.36%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.26%;"/>
    <td style="width:1%;"/>
    <td style="width:12.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.26%;"/>
    <td style="width:1%;"/>
    <td style="width:11.98%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cash flows from operating activities:</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a55ed346-74f8-4119-8a8f-d774109b9716" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a467b746-b428-40da-a27e-65f606dfa679" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">55</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Adjustments to reconcile net loss to net cash provided by operating activities:</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation expense</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5ad31ed0-8af1-4408-8b4f-93e643c8b2d3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,958</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1687f6ff-7797-4a8c-831e-0e8e7b2d7a1b" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,124</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Depreciation and amortization of capital expenditures</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_73151296-34b0-4d2a-ad25-8273c43f2394" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:DepreciationAmortizationAndAccretionNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,073</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_710a8d3b-88db-42da-b748-12b0e3d73626" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:DepreciationAmortizationAndAccretionNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,188</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Amortization of intangible assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5a80b703-9034-4187-9357-99bfa33ceae6" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,955</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bb3bb106-7488-454e-8bf5-0d7eddc7d07b" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,433</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Amortization of operating lease right-of-use assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9a768a62-7e51-458f-90d8-693f4e41fcec" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,517</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_602215fa-c510-44f0-8484-b6cce00c16ce" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,460</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Gain on note conversion</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ca03f45a-4109-4c90-adef-a75e30dc7190" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:GainOnNoteConversion" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">980</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Facilities consolidation gain</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_be2e9191-47f6-42e0-a00d-6188d2f5d030" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:FacilitiesConsolidationGainCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">956</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d85746b7-00b1-4ae6-95fe-a7fa9e242099" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">108</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_61b5d83c-3b2e-4b9e-875b-e578454fd11f" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Changes in operating assets and liabilities:</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts receivable, net</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_931c0b3d-9a8e-49b4-9cc8-b19ca41bb939" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,675</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f7a9192b-f201-4a7c-9726-4c389ec46fd1" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,481</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inventories and deferred inventory costs</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ddcfe7a8-d59e-4cd7-828f-99f0e91cbaab" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,527</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d7ecc87d-e884-49b2-8858-6dd20cc1f80f" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,347</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Prepaid expenses and other assets</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_59fc7e1e-96aa-4874-9c0b-b58858c4b191" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,571</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1423c158-b5c6-48e0-bdc1-f8c0971a49a6" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,485</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts payable, accrued expenses and other liabilities</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_238d343e-16fc-47e1-8d2d-b6c174cadded" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,399</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a14c32ef-05b3-41e2-9406-e9cc563b67d0" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,896</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3a254ebf-7fa7-45a9-8cf5-e4ac065e5c24" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncreaseDecreaseInDeferredRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">85</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bc256016-ffef-4537-a71d-413ac6c7d31e" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncreaseDecreaseInDeferredRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">161</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_922578a9-55cd-44d7-a797-ac5ed085dfc0" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,672</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a788aebc-0dea-4b11-a75e-ae6a242cfce8" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,836</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cash flows from investing activities:</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Proceeds from maturities of short-term investments</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_19dce186-97a3-42b8-84c8-3c2eb5f2489a" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,250</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Capital expenditures</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd601638-1ede-468a-a824-543a4d9e09d9" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,192</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3cab3b75-124f-44b9-94ff-110bbe7b21fe" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,518</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Business acquisition, working capital adjustments</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f32294fb-8a16-4ffd-ac6f-48d964847744" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">300</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net cash used in investing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c86e1b76-99e8-4631-9952-c53d875a2836" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,192</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_66b1fc5d-c78e-4ed0-93fc-a6be092519a3" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">968</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cash flows from financing activities:</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Proceeds from issuance of common stock</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b5525b0e-1542-463c-854a-c648354a26c4" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ProceedsFromIssuanceOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,584</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d53d06b6-bfb7-466b-82f4-0a4a8e08a833" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:ProceedsFromIssuanceOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,888</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a1a739be-a6c1-4192-a129-557f8f1df818" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,624</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_96e552fa-8060-418f-a684-56502ef38d58" contextRef="C_9a4d67ed-73e6-4185-a018-64f698e71c20" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">914</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Payments for repurchases of common stock</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b7f18b5-3b3a-4e74-b6a5-c8a660a83282" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Repayments of long-term debt</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_659f0ae7-07f4-4c6a-b12f-a646533c2930" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:RepaymentsOfLongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,500</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net cash (used in) provided by financing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9f36ebfe-ff2b-41f7-9974-ac971a2782dd" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">8,431</ix:nonFraction></span></p></td>
    <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bea5ccc6-ac1f-4e63-86a0-485dca8bf755" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">974</ix:nonFraction></span></p></td>
    <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net (decrease) increase in cash and cash equivalents</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_af369f72-8fc0-487c-91a2-6ee8d1a3be82" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">951</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_68dd3690-8d9f-4ac8-b21f-6896ce1b98ea" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,842</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents at beginning of period</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a670428-5802-4ffa-b95d-cf39bde84ffd" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,536</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_79622ad5-d552-45d2-a2fb-08711a74fefe" contextRef="C_dd2082e5-119e-47db-a772-929ecc8d2f58" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,137</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents at end of period</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_36e9b7c0-3da2-483a-9f21-93d76f6ae0c4" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,585</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ebabd572-023a-4b90-9550-20d963dd78c5" contextRef="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">28,979</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">5</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">OOMA, INC.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_stmts_of_equity"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">C</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">ONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#8217; EQUITY</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:37.28%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1.02%;"/>
    <td style="width:1%;"/>
    <td style="width:11.24%;"/>
    <td style="width:1%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1.02%;"/>
    <td style="width:1%;"/>
    <td style="width:11.24%;"/>
    <td style="width:1%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1.02%;"/>
    <td style="width:1%;"/>
    <td style="width:11.24%;"/>
    <td style="width:1%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1.02%;"/>
    <td style="width:1%;"/>
    <td style="width:11.24%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Common stock</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Stockholders'</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal 2025</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">and APIC </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;min-width:fit-content;">(1)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">AOCL </span><span style="color:#000000;top:-4.221pt;white-space:pre-wrap;font-weight:bold;font-size:6.03pt;font-family:Arial;position:relative;min-width:fit-content;">(2)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Deficit</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Equity</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - February 1, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248" contextRef="C_147ff029-0d39-4182-b2ed-5fafbcfb721e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,366</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb" contextRef="C_a8b3e177-5416-4595-a8e6-ac943e6ed9da" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ade7cd4f-c59e-482e-a44f-7f71a6c25989" contextRef="C_1b52bd25-4f88-4e0c-a1fd-55bc797c76b2" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">133,278</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_522acc5b-5c40-4ade-9738-a1fcd25e5b38" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">78,087</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6" contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,417</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a0d9fcad-9bbc-458f-8843-8ce078bc5fe8" contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,417</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cdd7a789-5013-4240-a53c-f29691df1e49" contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">740</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_385f0e1e-b6b0-4550-92e4-cf968ebec6ec" contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">740</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a0180243-6949-4df7-8356-51b5228517a7" contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,363</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_901f08b6-a53b-4ed3-a845-b92232b5eb31" contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,363</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7b96acff-22ed-4af6-a73a-8b869ca8f548" contextRef="C_2d5d1911-8e7c-4584-9fcc-ebe4f3316d1c" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,139</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3f05bd11-fb10-4ec3-abf4-162fbbaa5552" contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,139</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - April 30, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5" contextRef="C_f4e3584a-fb2a-4793-99a2-add62be23141" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">216,406</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_02f3002c-57f0-480c-9212-43946ae6f564" contextRef="C_40f7cf8b-ac49-4aed-8619-7f0bedbd607e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6dc7cba9-0458-4115-9037-1214992b02a9" contextRef="C_aab39870-5b47-4195-85f6-66d06c02badc" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">135,417</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_485cca43-1104-49e6-bcd2-28b784ac716e" contextRef="C_e39ffed3-48ca-4219-918f-2c5d02a5e0ca" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">80,988</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fa789cd7-9676-4b25-9f0c-604a4ac5695f" contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">167</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_273c4492-e7bf-4c4e-84e2-3b9498593429" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">167</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_13b54e13-4f1c-4681-8596-38b50f30c98a" contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">884</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6157084f-5a15-4ea8-b403-9505bb1bb41e" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">884</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Repurchases of common stock</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2" contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8a0ddfc4-6381-4d9e-9082-8aabad4f2044" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3e37df84-2351-4c02-8279-b981578905bd" contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a53b6e5-f7f9-43d4-b695-283e1ef6fc6e" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Changes in other comprehensive loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f217e5dd-7930-4dbc-b022-97b6c798a143" contextRef="C_0fe19e6c-342e-4acd-ad99-1c9b9e48a88b" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bc76e510-aa28-441b-addc-fea3118dfad0" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cbc9971d-8c03-418e-afb4-d405f887e962" contextRef="C_fe5ff670-e4da-4744-b17f-9010efe8dd1d" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f2584bc-4966-4a6c-9b51-bf66edafc4c3" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - July 31, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61" contextRef="C_122fdbbd-8f22-48ea-8d14-7412d05fabe3" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">219,393</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fa417b5f-87ff-4f7f-8229-95c1d57cb0fa" contextRef="C_de5fd78c-e442-4de0-b49a-6c842fca68f4" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">137,554</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_01a67d10-2d97-4dc5-8184-83288e75062a" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,839</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Common stock</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Stockholders'</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">and APIC</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">AOCL</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Deficit</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Equity</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - February 1, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_269afa3d-6d0e-460f-a875-ff85c603d317" contextRef="C_5fbd1f80-4685-4a9d-a079-78b2e2ce8e0a" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">195,610</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b4b1fffe-05e5-4d42-a196-06081764438c" contextRef="C_d3adecf1-a558-4ea3-aa8f-240f9b08a42c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">23</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_90f0c545-77c5-4b75-8df2-76563adcd124" contextRef="C_7cc4f3cb-dc19-4350-8d70-cdb7e5355f64" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">132,443</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3c122075-484a-48de-adc7-0bedacce1b09" contextRef="C_dd2082e5-119e-47db-a772-929ecc8d2f58" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">63,144</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6421daa6-2960-47d6-a9bc-55d504bd91db" contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,724</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_441ac704-d71a-4b99-92e6-c2c1326d0ef5" contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,724</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c96b052f-590a-43e8-94b7-cef3ddb15edd" contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">431</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f3d787e0-c5d4-4786-bdf2-d3e5279f58d0" contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">431</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1a07101-3ee3-48cb-9810-c3367b92c1d8" contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,500</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2abf6eea-263d-4191-b129-ec75196b0939" contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,500</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Changes in other comprehensive loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cf63ad53-9b75-4285-bddf-cbb69889d719" contextRef="C_88826bd9-9646-43d9-87a9-ef42835ba1bf" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_744f29d3-b443-4dba-932e-124a1bf8fc4f" contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_77460321-5ca1-44a7-a350-192e2cca6058" contextRef="C_5aa1deee-a600-4749-b6b3-af4f2aa4ead6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">326</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ab673d46-1fcb-4b4c-b2e1-ac3216a4eabf" contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">326</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - April 30, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f157cd43-3b57-4488-b768-67b1d0f09d01" contextRef="C_cb05bb13-709b-4f0c-bf23-36771a586c30" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">200,403</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0041b266-6d00-4aa1-82d4-1e94ca7589e4" contextRef="C_521d54f0-2514-4e13-8fb7-eda813d6e631" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">11</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_df3a42b2-d6c5-4fe7-b631-0fa2cfdf3b9d" contextRef="C_a4ccc371-2be4-4b6e-9956-a60e76834c63" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">132,769</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e6402d8e-225c-4ded-b2d7-022e4361c414" contextRef="C_ef07da5d-6520-476b-9216-5599d8b43d8f" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">67,623</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d" contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">164</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_168d9c10-a076-48ae-94ba-be4e34f9ce2f" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">164</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2332af69-1803-4f12-9b80-76be6faa6679" contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">483</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d81e5e6d-a1f5-425c-82ac-bec9ba123827" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">483</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_331236f8-3e1d-47bc-af95-3ac36c82ed62" contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,624</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_763b8f5c-d045-416c-9d10-ed33b8762a61" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,624</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Changes in other comprehensive loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_487f8fcf-450c-478b-b6ad-55c4c8f56547" contextRef="C_1d623869-39ae-434c-8174-893d15134e5f" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1bbed31f-c022-419a-a017-959bcb734a6b" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b6834884-2b2f-4364-b444-bc39353b776b" contextRef="C_2946deff-e8bd-42d3-ba6b-bb0bacc433c9" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a9c15112-68b8-4d7d-8374-af0075d21bc6" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">BALANCE - July 31, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_74df9102-1ee2-42eb-a646-12e8c13d0e2f" contextRef="C_cba8a689-d6e2-4222-bc0f-37c9ab83063f" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">203,708</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a4807772-e2dc-4b20-82fd-160935e09e79" contextRef="C_001c6846-db0d-46db-8dcd-7a77b5744a83" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e1ca89e-992d-4b94-9673-f3a68ef4d2de" contextRef="C_9d72307d-87c6-4e4b-a4c1-a0f04dc8c9e5" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">132,498</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ebe00ee5-de25-4b6f-b700-f7857ad22734" contextRef="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">71,205</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;min-width:fit-content;">(1)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;"> </span><ix:footnote id="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Additional paid-in capital</span></ix:footnote></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;min-width:fit-content;">(2)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;"> </span><ix:footnote id="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Accumulated other comprehensive loss</span></ix:footnote></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">6</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_5b8fcb77-a73f-406d-8bdf-cbb3542d6645" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="notes_to_condensed_consolidated_fs"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">N</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">ote 1:  Overview and Basis of Presentation</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#8220;Ooma&#8221; or the &#8220;Company&#8221;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Fiscal Year.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company&#8217;s fiscal year ends on January 31. References to fiscal 2025 and fiscal 2024 refer to the fiscal years ended January 31, 2025 and January 31, 2024, respectively.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Basis of Presentation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2024 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended January 31, 2024 filed with the SEC on April 2, 2024 (&#8220;Annual Report&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2024 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Principles of Consolidation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Comprehensive Loss. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For all periods presented, comprehensive loss approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive loss have been omitted.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Use of Estimates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#8217;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#8217;s estimates.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Significant Accounting Policies. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There have been no material changes to the Company&#8217;s significant accounting policies from those disclosed in the Annual Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_154ca672-54f9-47bb-a10f-9173ecafdd16" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) 2023-07, which is intended to improve reportable segment disclosure requirements, primarily through additional 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 amendments should be applied retrospectively to all prior periods presented in the financial statements. The Company is evaluating the new standard.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is evaluating the new standard.</span></p></ix:nonNumeric></div></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">7</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_8f872e8e-686e-496f-9b63-27be3f74e0ef" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:RevenueFromContractWithCustomerTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 2:  Revenue and Deferred Revenue</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company derives its revenue from </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3eda8878-f193-40d0-ba35-e3be26a05f34" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:NumberOfSourcesOfRevenue" unitRef="U_Source" decimals="INF" format="ixt-sec:numwordsen">two</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> sources:</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and Services Revenue</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and Other Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_8b521a92-b41a-497f-b7c2-f42278010571" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:DisaggregationOfRevenueTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88755d6c-4448-4818-8883-eb5c9c8cc54c" contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,566</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7cbf25b2-7c16-4cb9-be3b-115baec11f9c" contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">54,726</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_845472a9-03e9-4766-88fa-3477ecb677c4" contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">117,955</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ed293ad9-d6fb-4d37-9b34-b006d90c2f9d" contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">107,775</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9426b6c-2a19-4795-b2cb-46ae82e43125" contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,563</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2de7bb70-5bc5-4731-b70c-c3b452230587" contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,627</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_316198b1-8674-481b-8b53-938cf5af0512" contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,673</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7b49f6e6-ae9f-4907-a4bf-6c46d5045abb" contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,430</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d3ceefe0-43b2-4917-bd25-4fb705f87524" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,129</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_efd97e56-6239-4d3f-b33f-5c5cf0633214" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">58,353</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a8e19651-93c2-4e76-8eb3-7af0d3601350" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,628</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_be5723c5-4a3b-4a28-b55e-d9333400409d" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">115,205</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_98110971-2621-4f62-97c9-eeca055a2f1e" contextRef="C_485746e9-62e4-4ee0-b53c-f6660c764c03" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">61</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_48f70fda-fe15-435e-ae4c-509b651471ea" contextRef="C_b9df152b-327a-4710-a87a-df2a8ba0a9c6" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">57</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c812a69d-2a5a-4992-8d2d-a5751313aaf9" contextRef="C_eb3a8f55-0cc5-46d5-8010-308801d274c0" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">36</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1b74a11f-8a76-4ecb-9950-e35df500c1fd" contextRef="C_811dd9c0-a330-44ef-8e5e-fca80238bd85" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">41</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> from Ooma Residential for the three months ended July 31, 2024 and 2023, respectively. The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f8f0b0b6-91f7-4c8a-8ad9-f1ce400b246f" contextRef="C_f2435b6d-cacd-471d-bbc4-1bdba910db58" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">61</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_18ebee18-a886-4361-928d-f26afce60890" contextRef="C_780b8acc-e21f-4fbb-9417-988d2ba39f96" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">56</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ecd71804-9bf4-478e-a63c-2af6515ee5a7" contextRef="C_34dbe02b-4fae-49e8-9343-22b04152ba7a" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">37</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_58dc3758-29b3-435f-8d33-42b0cf22ecf8" contextRef="C_6bd829b0-c089-4ceb-a7bc-b19d5827cb84" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">41</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> from Ooma Residential for the six months ended July 31, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, respectively. </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e365a8b-274a-423c-bdf7-d1100aa730f7" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" unitRef="U_Country" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_6e1fb5db-623e-4abf-8038-60e2b6f9dcf4" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" unitRef="U_Country" decimals="INF" format="ixt-sec:numwordsen">No</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> individual country outside of the United States, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_38204f04-0235-4bca-b344-0cf2de46c352" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_544baeff-c260-4666-8327-e7426b05544c" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> single customer, represented 10% or more of total revenue for the periods presented.</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_5159441b-68cc-49bd-a668-f70ab48da50f" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.42%;"/>
        <td style="width:1.36%;"/>
        <td style="width:12.34%;"/>
        <td style="width:1.36%;"/>
        <td style="width:1.36%;"/>
        <td style="width:12.22%;"/>
        <td style="width:1.36%;"/>
        <td style="width:1.36%;"/>
        <td style="width:12.22%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer A</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_39b937b0-1693-45e4-acc5-fc040dcb7cb9" contextRef="C_1a96aa66-e0e2-4fb9-9b90-e210f298731c" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">18</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_971c7b19-b27b-452c-b64a-0006039ec742" contextRef="C_aa6f2c7d-c32e-4d4f-81b0-eaef2a879d64" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">33</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td colspan="9" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><div style="font-size:12pt;font-family:Arial;"><ix:nonNumeric id="F_5e048b0c-1221-474e-b4f4-d1a1cacb6bf3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:DeferredRevenueByArrangementDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.791%;"/>
        <td style="width:1%;"/>
        <td style="width:12.683%;"/>
        <td style="width:1%;"/>
        <td style="width:1.36%;"/>
        <td style="width:12.222%;"/>
        <td style="width:1.36%;"/>
        <td style="width:1.36%;"/>
        <td style="width:12.222%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_abee92d7-50fc-4d9d-b341-74a1124f991a" contextRef="C_69c94376-c854-411e-b064-24a5951d6e6e" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,131</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7ea09997-6665-4b6e-a007-2cff53c3a79c" contextRef="C_32c9db7a-ba31-4b2f-af90-0e45725fdbb0" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,034</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd9a0a00-e0b8-4c3d-9e22-b9c7c22b44ed" contextRef="C_8e974ebe-a10f-4e85-96b3-adc88d345dcf" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d9e1083b-00b3-4556-b21b-4bf4f7ca10b3" contextRef="C_8389226e-0559-4db8-bd28-1e66c1579d3d" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">22</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_064526b2-9df6-4ce3-94ac-1a658658477d" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,141</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9fe3221d-c99f-4f7b-aa1f-66c61b6abb90" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,056</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: current deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d0437322-ba31-4dd0-9592-5997fc223316" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,123</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4c091ac3-df21-45ac-adaf-449d2dad16fd" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,041</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_59da5946-ffad-41e1-9e8e-4c2b95c2f4e7" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_92cd42bd-469f-4f60-955a-04f6a925d22a" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During the three and six months ended July 31, 2024, the Company recognized revenue of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6394600f-5771-43fe-a2fe-3f8fb15bfa6f" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a92fd7ee-945d-4ef8-a0a6-5b4cf03a3c6d" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">13.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively pertaining to amounts deferred as of January 31, 2024. As of July 31, 2024, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2025, as well as amounts recorded during fiscal 2024 for annual contracts.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Remaining Performance Obligations.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_02c31136-94af-426b-847d-7f0cd6faa8da" contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">34.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. The Company expects to recognize revenue on approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a0c56a02-29e2-4a10-8c99-e44673ee286e" contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">41</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of this amount over the next </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_d27e9247-d463-48d0-a996-8743aa35a094" contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:durwordsen"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">12 months</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, with the balance to be recognized thereafter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">8</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_1ba4ec73-0247-4d0e-9b68-e93caeb125d3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:FairValueDisclosuresTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 3: Fair Value Measurements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company estimates and categorizes fair value by applying the following hierarchy:</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 3:	Unobservable inputs that are supported by little or no market activity.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f1b6f417-4c75-456b-8b2a-0d2a61b3c536" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">16.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8d73909f-01b7-4cc6-8803-76481ce8a42f" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">17.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash and cash equivalents as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024 and January 31, 2024, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Non-Marketable Equity Investments. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bca5c0ac-b64c-406c-aa53-9964e582e768" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:NonMarketableEquityInvestments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. This balance represents investments in preferred shares of Global Telecom Corporation (&#8220;GTC&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company&#8217;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">9</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_e563519b-a6eb-4ae0-bbdf-c121c7b344dc" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 4: Balance Sheet Components</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_15c49943-c647-4197-8fc8-d632a5012875" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"/>
        <td style="width:1.46%;"/>
        <td style="width:10.658%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:top;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Finished goods</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e441b9d4-d2c7-47a6-9315-966421ac651e" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:InventoryFinishedGoodsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,033</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0025c422-d6d2-4d71-8538-be3b40b8c538" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:InventoryFinishedGoodsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,024</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Raw materials</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1b4d0ff-efe7-407b-9fe8-9d0acfef3009" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:InventoryRawMaterialsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,204</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_24c42370-742d-419a-ba04-0e387f2b054c" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:InventoryRawMaterialsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,758</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total inventory</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_821e093e-2444-40c9-8c56-f751f2baa27c" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,237</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_142b48a1-0163-401f-a025-5ae6327ddd0d" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,782</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_da23933c-4600-4c24-b9df-f9d865e86648" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfOtherAssetsTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"/>
        <td style="width:1.46%;"/>
        <td style="width:10.658%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4ceebbdc-e55e-40eb-b900-da2fb8a169d2" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:DeferredSalesCommissionsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,060</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6c07bc4c-12ae-4d35-bfd5-8c8614e87963" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:DeferredSalesCommissionsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,579</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Prepaid expenses and other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e77575d9-9cbb-4f8d-b113-2f5b4ea68726" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:PrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,712</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_04da288b-f105-46e3-95d9-676d4371bce9" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:PrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,177</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Convertible note receivable (see "GTC" below)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:11pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ced3a01e-c7c1-4e08-9426-c823991b4084" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:ConvertibleNoteReceivableFromRelatedParty" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c58be2ba-bea9-4de5-8c1a-97e01b4fbfb2" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:ConvertibleNoteReceivableFromRelatedParty" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,257</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0884b6a1-3359-4e54-b48b-db2475190eb1" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,787</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_be1ebcac-1959-44b4-999d-a297dc92f63f" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,484</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b9e4cd55-3b95-4f62-a529-19c6c560e4fc" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,559</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0df9c8de-8ba4-41f4-9700-cb060744d807" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,497</ix:nonFraction></span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c807d5a9-2f27-472f-92da-0843bd28698f" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:DeferredSalesCommissionsNonCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,092</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_da62ee32-edbb-467a-8430-7cf9386acda8" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:DeferredSalesCommissionsNonCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,257</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_49e2585d-5a9a-415a-ac7f-329a36607af0" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,952</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fef13798-c515-4a89-bc64-30b3475c7a50" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,358</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other non-current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_546fc64f-6d27-472a-b5bf-8293efecd006" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,044</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a17cd7a4-ced9-41b0-a8b4-9cd87436baaf" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,615</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Customer Acquisition Costs</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> Amortization of deferred sales commissions was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5ae4e56d-537a-4a1d-ab84-b33a23db7bfc" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_10b5a430-613d-4e68-a211-b2bd54994c7a" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three months ended July 31, 2024 and 2023, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d42713e7-439d-4491-85bf-80d3a19eac80" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e1e1e649-7d3c-4b4e-aeff-4df3c2728983" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2024 and 2023, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Global Telecom Corporation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> In December 2018, the Company invested $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_55ffd69b-d961-4a83-b7e0-2c1ee69ba8ae" contextRef="C_22a33c2c-f968-47ad-888f-413dcc946735" name="ooma:InvestmentInPrivatelyHeldCompany" unitRef="U_USD" scale="6" decimals="-5">1.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash in GTC, a privately-held technology company, in exc</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#8217;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2024, the Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b253f20a-5d32-467c-91ac-d648f284a4cb" contextRef="C_77cde952-5e65-4527-93b2-0ce3ff09e5da" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in non-cancelable inventory purchase commitments to GTC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. Per the terms of the note, in the event of an equity financing all of the outstanding principal and accrued but unpaid interest would be converted to a number of shares of standard preferred stock equal to the Conversion Amount divided by the Conversion Price. "Conversion Amount" is defined as outstanding principal plus unpaid accrued interest. "Conversion Price" is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_53e080d5-8e52-4e99-b570-1c5e6bcf1e4c" contextRef="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011" name="ooma:ConversionPricePerSharePercentage" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">70</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% of the per share price for the preferred stock. As of the Financing Date, the carrying value of the convertible promissory note of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f814f687-fd9c-4462-aaf5-58faa0729114" contextRef="C_a78f120b-2259-42f0-9736-5cb10fb93a1b" name="ooma:CarryingValueOfConvertibleNote" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, including accrued interest, was converted to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_99bb27c4-00fc-4cff-b1c1-c52590025d86" contextRef="C_a78f120b-2259-42f0-9736-5cb10fb93a1b" name="ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million shares of preferred stock of GTC. Upon the conversion event, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">GTC is no longer a variable interest entity for accounting purposes. T</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">he Company recorded a gain on note conversion of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cca6626b-a9fb-4afb-b39d-7be5c22ad09d" contextRef="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011" name="ooma:GainOnNoteConversion" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million to other income </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">in the condensed consolidated statements of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The Company recorded the fair value of GTC preferred stock of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dfbbed63-a306-453e-83d1-c7303c659004" contextRef="C_ac87bc7f-9032-45e8-b4bc-030cd670bfb8" name="ooma:NonMarketableEquityInvestments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024 to other assets in the condensed consolidated balance sheets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">10</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_18fa3aa0-1eb6-4f33-aff8-66411ae5c836" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"/>
        <td style="width:1.46%;"/>
        <td style="width:10.658%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
        <td style="width:1.46%;"/>
        <td style="width:1.46%;"/>
        <td style="width:16.837%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Payroll and related expenses</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3ee86fe1-8471-4703-811b-263487d6b41b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,737</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_96b3d2a9-8b8a-45f6-aaa4-4f843999dc11" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,301</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_14ab7009-b64b-4d8b-9c4c-6186c66c6774" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:RegulatoryTaxAccruals" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,475</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ec58c325-00a7-4679-b558-f63fdae03099" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:RegulatoryTaxAccruals" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,598</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834;"><span style="-sec-ix-hidden:F_cdb13912-9734-4f23-8fba-675ba3625e01;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a98c88f2-aeb8-4b37-aefe-2415661e6c87" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,710</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_829c5dd2-5c8a-4e93-bab0-5174c6a87faf" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,742</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer-related liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6b78a460-3ceb-4c14-b579-8e34aacec484" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:AccruedCustomerRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,365</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_64622d93-000d-47fc-894f-b538e09a00d1" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:AccruedCustomerRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,118</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a7f5fcb-8e99-4502-94f1-414f45c5bd28" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,101</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c13f40d9-bbba-491c-80a7-a7e93312b928" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,827</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c2d23d1c-2bbc-4b44-9d6e-a4d62ff1fb08" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,388</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fa38bda3-7a2e-4e64-928d-16dcb799a2f1" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,586</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_c404e8f3-2880-4b72-880f-6fbbb1dce955" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IntangibleAssetsDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 5: Acquired Intangible Assets</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f958012e-51f8-48e3-9a68-654b936eabce" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:20.631%;"/>
        <td style="width:1.019%;"/>
        <td style="width:1.118%;"/>
        <td style="width:7.41%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.118%;"/>
        <td style="width:9.986%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.198%;"/>
        <td style="width:9.986%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.198%;"/>
        <td style="width:8.708%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.198%;"/>
        <td style="width:8.708%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.198%;"/>
        <td style="width:9.986%;"/>
        <td style="width:1.118%;"/>
        <td style="width:1.118%;"/>
        <td style="width:8.708%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of January 31, 2024</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
       </tr>
       <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Developed technology</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_c972c588-8442-4421-9c92-cecb485433ab" contextRef="C_20fe6eb1-2de1-4cdc-a0eb-8a020cb322ec" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_678470f8-afc8-4ec4-ac8c-a07fdf23726c" contextRef="C_26a9200f-2b97-4fce-a5c6-1c32d16a7f0f" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></ix:nonNumeric></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3f0696e2-bd84-4cef-90c6-6363ed185f12" contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,618</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0fbbe456-842d-4ed1-ba4f-6dfcaf5b19b5" contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,277</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0dc09f34-3bdb-45cb-b90f-43b6ed5ddc7c" contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,341</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_183b312c-3248-4d4e-a316-335595304415" contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,618</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_239eeb3b-3e1b-469e-8a8a-8c592e05069b" contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,865</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f9ae4d30-a4c9-4d8e-9d74-8a21d9d261c3" contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,753</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer relationships</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_00215930-b856-49b6-96c7-a7391ff88b04" contextRef="C_e73a2722-4182-45da-b428-1c7d1f66fe1f" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_6caa6d1b-5601-429c-b526-89e16038e78c" contextRef="C_d3160528-5984-4b87-aa53-c12d0fccdebf" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></ix:nonNumeric></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aeb208e7-769c-479d-9709-1898bc423fcf" contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,545</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_53f61032-f32b-4b3a-83a6-e315ed1be10e" contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,733</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e87cb55b-9a30-4503-bb37-453b09070588" contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,812</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5d3a2679-10a0-4ef2-bdf6-7bae4f0c0e26" contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,545</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_77c4c3a7-937b-4067-afaa-906cbc00b4ec" contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,336</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2eabccc6-be63-4010-b0f6-a91b04c7fcb4" contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,209</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Trade names</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_e9d1dfa5-8f25-40fc-991a-e8bbbbc28180" contextRef="C_38017c8d-6d39-4aa1-a96d-4f8c39224d8c" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-</span><span style="font-family:Arial;"><ix:nonNumeric id="F_042f3252-bb92-49de-ad91-e266d5d25f6d" contextRef="C_ee4e2f31-abed-4aa0-87bb-dab4d957ff79" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></ix:nonNumeric></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_23e579fc-164f-439d-a851-f933eeec1c14" contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,685</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2cd51e53-c591-41ca-aae0-38f0efc7383d" contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">841</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2e2e08f5-c1af-4621-8458-b0809f66a1b9" contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">844</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_47e1b3c9-eb8b-481a-8997-a6d2234ac692" contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,685</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_08981920-3d87-4fc6-a03e-25ee11aa34f7" contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">695</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f232143-ed44-42f6-bbb7-f4eb139583b3" contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">990</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total intangible assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8d23c486-7892-4917-b991-196bebd156fc" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,848</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6bf5a2d0-bdc2-436a-88f3-46985af90f9b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,851</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9c9ef257-a428-4502-897e-28c6b100093b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,997</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_de34cfb9-ad53-4631-bcfb-03e967e1cfa9" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,848</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fb594dfc-6094-4793-9e50-26c3cddbdd7d" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,896</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d63dc748-5b00-4ad1-91e7-db953fcc289b" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,952</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Amortization expense was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5b9caa01-6e18-48cf-9bab-85ff4a2319f3" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fe5d2026-dc2d-4bd1-9969-d01106724bb5" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for each of the three months ended July 31, 2024 and 2023, respectively, and was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2dfc0f9c-c027-46f9-91eb-a80e900963a2" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_29e1621f-776f-4748-926b-93e721532b30" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for each of the six months ended July 31, 2024 and 2023, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_78d0dedf-e88e-4c93-95a8-fd59df08d118" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.69%;"/>
        <td style="width:2.42%;"/>
        <td style="width:2.619%;"/>
        <td style="width:17.497%;"/>
        <td style="width:2.619%;"/>
        <td style="width:2.619%;"/>
        <td style="width:23.535%;"/>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_85446f05-6fdd-45c3-9bdd-9204219ca726" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,812</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_496c4c0a-472e-41c8-9610-04c7f1351df9" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,624</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a29e632-1684-4c7f-b11e-07b457fbeaca" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,068</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e98686ee-575a-4d3e-a80d-9244c6c5f5de" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,950</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a2644739-69e7-4b74-b23f-3507d097cdb5" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,030</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9d946c53-d96f-46e8-af91-d5024af91502" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,513</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_74590a53-f346-4734-b82e-b712893d34c6" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,997</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">11</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_0291d184-8ed2-44fd-85cf-52ff757abc28" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:LesseeOperatingLeasesTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 6:  Operating Leases</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_73a67218-f35b-44c6-8160-353270392069" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:LesseeOperatingLeaseDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_b72c0c6e-5677-498e-bf30-7474b1db6ecf" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:LesseeOperatingLeaseExpirationDateEndingPeriod"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">2033</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">.</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_9f4e909e-4922-4677-b5d9-251d7a449803" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.24%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_684a5383-b516-4e5b-8dea-05e20b689aea" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,833</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_52661d13-ba7a-49b0-95a1-30e9c4b4d802" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,041</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2d2362d0-70ff-4315-99a9-fd1cf089e030" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:OperatingLeaseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,833</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0cfe51f6-6d97-4798-8cdf-6887118e9e46" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="ooma:OperatingLeaseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,041</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0a7084ad-a00d-4466-8d85-5e206b9ac872" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,710</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2bfa0464-3163-4f39-86bc-49e6aa6a2b3d" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,742</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_885b9192-b927-4141-b8be-a97bc7644c74" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,635</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_90ac5a35-2672-498e-a144-48cc86ecee55" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,676</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3eac4847-b662-410f-8247-1f261336a972" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,345</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9776d65c-4ef0-4798-bd74-1e9138f6750b" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,418</ix:nonFraction></span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_510c7429-50a1-41ba-8664-5bd32359906c" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.6</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_78f641f9-3c2d-4fbd-8423-101ce97bd464" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6.0</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average discount rate</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1d8a6981-fd8a-4846-bed8-029ad2867279" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">6.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3e55816a-62be-4c3d-bc29-ca8e540aa1ea" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">6.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company incurred total lease costs in its condensed consolidated statements of operations of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_68eb4db2-3ea9-4fa9-9ff9-8cf79482b0ee" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fee73d16-af82-485b-83ac-6516543e8814" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three months ended July 31, 2024 and 2023, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_686531e8-61a4-47ab-aaba-512d9b6b1002" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5749aa18-f8a1-4f19-9634-8bdfea662020" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2024 and 2023, respectively. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Additionally, in the third quarter of fiscal 2023, the Company recorded facilities consolidation charges of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_720393dc-15b7-42e3-91be-12772f251704" contextRef="C_8516e2cc-81a9-44e6-907d-bf8b6d2d89be" name="ooma:FacilitiesConsolidationCharges" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million to general and administrative expense, in connection with the leased office facilities assumed during the second fiscal quarter of 2023 in the Company's acquisition of Junction Networks, Inc. ("OnSIP"), which the Company subsequently determined were not needed to support the future growth of its business. In the second quarter of fiscal 2024, upon the lessor's sale of the property, the Company wrote off the remaining $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3d12867a-ff13-4fd1-a1ac-622a133fc3e1" contextRef="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876" name="ooma:RemainingOperatingLeaseLiabilityWroteOff" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million lease liability related to the lease as facilities consolidation gain in general and administrative expense in the condensed consolidated statements of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_d7523a64-0869-4295-b6bf-509d301219ea" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.567%;"/>
        <td style="width:1.061%;"/>
        <td style="width:1.001%;"/>
        <td style="width:1%;"/>
        <td style="width:9.488%;"/>
        <td style="width:1%;"/>
        <td style="width:1.141%;"/>
        <td style="width:1.001%;"/>
        <td style="width:1%;"/>
        <td style="width:9.488%;"/>
        <td style="width:1%;"/>
        <td style="width:1.141%;"/>
        <td style="width:1.001%;"/>
        <td style="width:1%;"/>
        <td style="width:9.488%;"/>
        <td style="width:1%;"/>
        <td style="width:1.141%;"/>
        <td style="width:1.001%;"/>
        <td style="width:1%;"/>
        <td style="width:9.488%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;word-break:break-word;">
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash payments for operating leases</span></p></td>
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1400697-067c-45d0-b3a7-f7d83d40c359" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">958</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_80bb0298-1db4-448b-b964-ec3733eb143a" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,131</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_678c5313-d629-4525-9513-07e8c62294fa" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,909</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0986e4ae-59e0-4d37-b7dd-a2d8f002a0bd" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,028</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6ecc12f3-ca91-42b0-ac9f-8e0f1eada9dd" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">310</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1550b38f-93ad-4428-a557-f933fa431dfd" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,902</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_4b47d513-4e0f-4169-84b1-bb7ac8426275" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.24%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1.32%;"/>
        <td style="width:11.078%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31, 2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8720a997-44c5-45ff-abd6-209977237d05" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,935</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_427709b3-a7ef-4621-b996-dad3cb9b5a0d" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,810</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d0fa4b00-0654-43ea-a434-afaa58f27ccb" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,969</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8db5425c-dc18-46e0-8f1e-a6b7e82002fa" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,720</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e650b58e-e562-47b3-b43c-b25b7e6b67bd" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,742</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bd8b6122-c265-4e68-9f03-2f2270e8b8f8" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,630</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total future minimum lease payments</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f6f1d873-64cd-4c20-b501-a5a8949cdc50" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,806</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: imputed interest</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e6cc8f8e-204a-4a35-b13c-9a497e8c3284" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,461</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_def15a8e-8326-42bd-b4a8-d968998f2b96" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,345</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">12</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_e41caca0-3e18-49cb-8b3c-ec98103db477" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 7: Stockholders&#8217; Equity</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan, pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (&#8220;ESPP&#8221;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_39091450-b5a8-414c-95ed-35e309322eb6" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" escape="true" continuedAt="F_39091450-b5a8-414c-95ed-35e309322eb6_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock option activity for the six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_39091450-b5a8-414c-95ed-35e309322eb6_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:52.089%;"/>
        <td style="width:1.459%;"/>
        <td style="width:1.459%;"/>
        <td style="width:13.052%;"/>
        <td style="width:1.459%;"/>
        <td style="width:1.459%;"/>
        <td style="width:13.052%;"/>
        <td style="width:1.459%;"/>
        <td style="width:1.459%;"/>
        <td style="width:13.052%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Aggregate</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Exercise Price</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Intrinsic Value</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Per Share</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_27f33769-1d41-48e5-bde6-3af97c514d0c" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">1,161</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9552eb5a-d222-40a7-9f45-823f1aca02f4" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">10.14</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_91ddabc8-c074-43a0-9d1b-3e8faeecf372" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,522</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Exercised</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7de7fa93-2496-4f8b-b8ca-5c2475c8ad3e" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">39</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_adcac198-6318-452c-8b03-bb91bfc418f7" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">5.99</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_574e0c61-53ca-4edb-9e75-796c3c9ffaf6" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b702769e-350b-47a9-afa5-80fc2dbc47dc" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">11.24</ix:nonFraction></span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_68b83771-f3d0-45de-9607-cc2eece2418c" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">1,118</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9e5ccf13-1627-4479-9d0e-8bef4397f120" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">10.28</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c8cfccab-fb67-4a38-8226-0cabce0de323" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,040</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested and exercisable as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_edcde8df-77f0-4c02-99f6-ea444cefa9f5" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">1,057</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1eb68e6a-0430-4c6c-b0e9-d7c76b7b914b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">9.92</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_84b9371f-356a-4d93-9900-f632b32b5c3b" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,040</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:continuation></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2024 and 2023 was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7fa03453-7132-47af-b83d-4f95351652d8" contextRef="C_95187883-d284-43d3-8633-3b7f847d82ef" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_c6f57602-7f01-4248-b189-906156820584" contextRef="C_c74b23f2-81c2-4293-bf43-153f3ecaf755" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_931c3bb1-185f-4d4d-8799-09cec00d61e2" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_7b4b8678-f4c0-4a23-b14b-a2fc80c1b1e1" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> stock options granted during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2024 and 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Restricted Stock Units.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f08141d5-086b-4d69-a3c2-62f9b8555b13" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" escape="true" continuedAt="F_f08141d5-086b-4d69-a3c2-62f9b8555b13_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_f08141d5-086b-4d69-a3c2-62f9b8555b13_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:62.032%;"/>
        <td style="width:1.72%;"/>
        <td style="width:1.72%;"/>
        <td style="width:15.543%;"/>
        <td style="width:1.72%;"/>
        <td style="width:1.72%;"/>
        <td style="width:15.543%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8ae085cf-542e-4313-ab6a-973b5bd5d472" contextRef="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">2,075</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f48199bd-3380-46cb-bba8-3beb6329256a" contextRef="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.74</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5226fd58-b911-4107-8f72-52dbe9004525" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">1,114</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4e8ddaf0-3b21-4caa-9b57-a5bc0059ed90" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">8.68</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6477a85f-053c-4c52-8f4c-f6e4d741d1e6" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">703</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d6a41f82-7194-4826-8cfb-01ff0634b4fa" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">12.77</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8f969420-48bc-4c50-89d5-dfd404b052da" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">21</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ca8734bc-d4be-4a15-a702-20636edc984f" contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.24</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9810bff0-f151-41e4-9059-27a5e9ec376d" contextRef="C_76076364-b658-47aa-8569-630b56e80ed3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" scale="3" decimals="INF" format="ixt:num-dot-decimal">2,465</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_df699fc6-1f44-404a-8b22-1bd3afe6a710" contextRef="C_76076364-b658-47aa-8569-630b56e80ed3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">11.73</ix:nonFraction></span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.</span></p></ix:continuation></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Employee Stock Purchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During each of the six months ended July 31, 2024 and 2023, employees purchased </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_357c18b2-c02e-479d-900d-1389344d4328" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_0ee1d2e1-2ec3-467b-b61b-0e29c685c3f9" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million shares at a weighted-average price of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_356717ba-b9c6-4ee9-84d5-32e3b9eb600a" contextRef="C_b4afac33-dffe-4d1b-b038-3a2fa1f251ef" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" unitRef="U_UnitedStatesOfAmericaDollarsShare" decimals="INF" format="ixt:num-dot-decimal">7.35</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_27ef886e-14f1-4b60-844f-0b587368af57" contextRef="C_85f605d7-f321-40fa-81df-72dcd9044696" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" unitRef="U_UnitedStatesOfAmericaDollarsShare" decimals="INF" format="ixt:num-dot-decimal">10.60</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> per share, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock Repurchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In June 2024, the Company's Board of Directors authorized a stock repurchase plan of repurchasing up to $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f2656250-8fa4-4f75-b619-f6a60b1a7f11" contextRef="C_f410d6a3-09cc-46ad-b738-d75b0bb1c6a9" name="srt:StockRepurchaseProgramAuthorizedAmount1" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">4.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of the Company's common stock. Repurchases of our common stock may be effected, from time to time, in open market, negotiated or block transactions, or other means, in accordance with applicable securities laws. The timing and the amount of any repurchased common stock will be determined by our management based on its evaluation of market conditions and other factors. The repurchase plan will be funded using our cash. Any repurchased shares of common stock will be retired. The plan does not obligate us to repurchase any specific dollar amount or to acquire any specific number of shares of our common stock. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">three and six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, we repurchased in the open market </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88b926a1-3790-42e3-9586-e0b7c78f3968" contextRef="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_2b973f50-328a-4552-a259-6a62054e7794" contextRef="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">98,215</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_75567c85-cd62-4b5f-8563-cb8163cf696b" contextRef="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_823a61f2-097d-4d94-b3df-bb503367acc8" contextRef="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.9</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d19190f9-f8d5-49fa-9532-9a2fbde8b569" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million remained authorized and available under the Company&#8217;s share repurchase plan for future share repurchases.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.</span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_dd96b33e-e8d7-4f20-8dad-4b9fa7948909" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 8: Stock-Based Compensation</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_ceaee36e-09ca-459e-ac2c-9cb85d955933" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">13</span></p></div></div></ix:exclude><ix:exclude>
       <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.155%;"/>
        <td style="width:1.161%;"/>
        <td style="width:11.93%;"/>
        <td style="width:1.161%;"/>
        <td style="width:1.161%;"/>
        <td style="width:11.93%;"/>
        <td style="width:1.161%;"/>
        <td style="width:1.161%;"/>
        <td style="width:11.93%;"/>
        <td style="width:1.161%;"/>
        <td style="width:1.161%;"/>
        <td style="width:11.93%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cost of revenue</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_89e67cc9-4172-4510-bc4d-dbf719b68fed" contextRef="C_6f112919-07fd-4967-b68e-a8cbf59c731f" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">281</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_633dc41c-717f-4a98-8e98-ebe8dc713acd" contextRef="C_77602efe-4a7c-492a-be74-f673570eb250" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">253</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7a219221-b028-44ac-886d-1d8088262559" contextRef="C_69edfdd7-0a0d-4914-9d6d-9d8ae399542c" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">541</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c07588c4-02c7-4832-831e-b15308db85b2" contextRef="C_c0bf0121-9b2a-436c-bb6a-a706f283568e" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">502</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0fe430d2-a251-4c69-bbfc-789a5ca3ea81" contextRef="C_d0aa6afb-5424-47d6-8c57-51f531588c3f" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,000</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_864e5f06-fb29-4280-890f-7efa1e23569e" contextRef="C_213d6e40-df68-49ff-86a8-7ba47f81da89" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">498</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b206027d-43ef-4eec-9f07-1045e50c826a" contextRef="C_b991c8b4-9f89-41e6-a295-3d2f682a896e" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,979</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_64d40859-272e-4852-8ade-849b4fc463bd" contextRef="C_38ebbb41-fa1a-496a-ac23-c8002747b4a0" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">997</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2674c590-b182-4087-8fae-485e8f3eb637" contextRef="C_f60f1e40-9a6a-4872-bc38-e5d122609bf6" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,403</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cbcb5c33-d72f-4e43-9db6-4f16ac645761" contextRef="C_2a9ca0c3-9be9-4ba2-a355-51dbe6f30ed2" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,150</ix:nonFraction></span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_36959d16-5ef4-4d50-9b80-3c9c19d99ca0" contextRef="C_26af025e-1ef9-405a-b00c-86f77fa8f355" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,740</ix:nonFraction></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_acbea3a8-3275-4c15-8acd-5e197c9134dd" contextRef="C_af7882e2-ac80-4cae-8f3c-37a83dd5b2ac" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,296</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3edf07e6-56ed-4468-94bc-6145d2c5d2bf" contextRef="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,911</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e9662021-3370-46ce-9a29-fa3dc2780081" contextRef="C_fd2bca62-627b-4224-a093-65b115769150" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,723</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_438ed231-1669-4e46-aff6-69ce4d3e781f" contextRef="C_fb246d1a-98c3-410d-9b4c-792f4f501248" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,698</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_579dcacd-a1df-4e47-b4bc-718936a8fb2b" contextRef="C_8aa8ea4b-29fe-450c-afcc-b223ab3cf9fa" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,329</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8b2d54d3-dac5-468f-8099-81995cf74a1f" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_655a2f38-6c24-4c83-b589-4c2092129145" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,624</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_151fdd78-d053-41ea-80e8-9ecf93ab62a2" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,958</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fe18a795-e098-4c75-96ba-e92e629170c7" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,124</ix:nonFraction></span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, there was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cba00be3-9f1d-4459-9baa-08126c8af22d" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">29.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f6a24ad0-8219-4352-82d7-710211f238ca" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">2.3</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> years.</span></p></ix:nonNumeric></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_4181c37b-86d5-4308-be41-b8cfff8389d6" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncomeTaxDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 9: Income Taxes</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company recorded an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d12e2cb3-39fa-4fe3-b078-a4a044b12f02" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9d7541f8-be81-4fab-9fb5-98cc2010350b" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million during the three and six months ended July 31, 2024, and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9ada173-02c5-4c9f-9016-9df4b30444c1" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc5ff02f-a47f-46b9-a038-4d9223e9e557" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million during the three and six months ended July 31, 2023, respectively. The income tax provision recorded in the first half of fiscal 2025 and the first half of fiscal 2024 were primarily attributable to state income taxes. As of July 31, 2024, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, the Company had unrecognized tax benefits of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f6fa0f23-6cb3-4da7-a749-fb6445d78489" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:UnrecognizedTaxBenefits" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">11.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> will significantly increase or decrease within the next twelve months. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e00342c6-8716-467b-9d49-8b908fb0d969" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> interest expense or penalties related to unrecognized tax benefits recorded through </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p></ix:nonNumeric></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_ad05b373-5d2f-44cd-8218-c6cc19ce6578" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EarningsPerShareTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 10: Basic and Diluted Net (Loss) Income Per Share</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_c334dd66-0afb-47bd-af53-9ff27885e2d6" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table sets forth the computation of basic and diluted net loss and net income per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
        <td style="width:1.279%;"/>
        <td style="width:1.279%;"/>
        <td style="width:11.493%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Numerator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net (loss) income</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_18f116e2-8e94-4e30-b488-287fe573ecad" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c8aa8766-b312-4722-9839-3fb36eb2bc06" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_01f8ea75-525b-4f57-94c2-ae71464c0b23" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_353cafba-c919-41c6-b68a-0f08cfb30876" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">55</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic weighted average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f991e155-bf84-49bc-ba5c-74af1f25c217" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b8a9af2-fec4-45bd-84d9-75700a217a1f" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,330,545</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_41bfa5ac-6412-4905-837d-900f79313eac" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1dcc2744-4d47-48df-804a-70d9e9becd28" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,327,255</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1a5d6ec0-c423-4a42-85fd-4c0506f7ca24" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">604,473</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b05b5389-834a-4e2a-ae73-f07db2f9dc08" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8beb08be-38ad-4cdc-8ea9-6779cdb30179" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,935,018</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_335b0ec9-f295-4080-802c-dde122adb362" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4abdf281-4468-4283-b92d-e7d1a0913817" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,327,255</ix:nonFraction></span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic and diluted net (loss) income per share</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0fe1a813-0828-4575-8fe2-bffed160a2ef" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_4b9fe108-b5a7-4cd6-a159-414330fceb2a" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_94e66c16-cd4f-4d9a-ae31-e46b0182ffb0" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal"><ix:nonFraction id="F_9c4b5469-8bd6-4a2f-a190-2342a07bcfc3" contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4a333139-3fd7-4b6b-ab71-74983876e6e3" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_cda19602-313d-484b-807f-9ccbb8369845" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c6b199d0-e7be-406a-a589-76e3d832ffa1" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal"><ix:nonFraction id="F_8d86651d-5479-4b77-b779-4edc6d550214" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.00</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Potentially dilutive securities of approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3d936a58-127f-43f5-92e7-d09c68b74d49" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_8c97d3b6-ab4c-4559-9bfa-15d42a615b33" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three and six months ended July 31, 2024, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_86e5c13d-4a6f-4c9d-b416-c40fb18ccb1f" contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#8217;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">14</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_19eaef6b-d19e-4e03-b1cf-773de1a1f500" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 11: Commitments and Contingencies</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Purchase Commitments</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024 and January 31, 2024, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a0e23fb9-32d7-4f69-b412-864690e72203" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5a23a7b5-8cb5-4807-9d52-d6d5ead1739a" contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider that contains total minimum purchase commitments the Company is obligated to of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_86dd4ae1-4ef4-4e1f-b856-9c745eb42486" contextRef="C_597414ab-347e-4aac-a222-07895a42c130" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">11.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million between March 2024 and February 2029 and a non-cancelable service agreement with a cloud service provider that contains total annual minimum purchase commitments the Company is obligated to</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e8250f42-8ed7-4f32-b722-9be10f6891e0" contextRef="C_1f3b2012-e409-4348-9076-efc8fa2bd15c" name="us-gaap:PurchaseObligationDueInNextTwelveMonths" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million between March 2024 and February 2025.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Legal Proceedings</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees, the Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the Company did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_93096fc0-884e-419a-bd95-431318ae0d57" contextRef="C_6c762824-ddef-45af-8d13-01a59896f092" name="us-gaap:LossContingencyAccrualAtCarryingValue" unitRef="U_USD" scale="6" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Canadian Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#8220;free&#8221; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues, and the parties are awaiting the Court's ruling. The Company intends to continue to defend itself vigorously against this complaint. Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from the Canadian Litigation is not estimable.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Indemnification</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#8217;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.</span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">15</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_4752b8a3-af29-4a4e-85c9-4aa523b65437" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="us-gaap:ShortTermDebtTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 12:  Financing Arrangements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Revolving Credit Facility</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_a8fb6e7f-0159-432c-acb5-e4a96541f557" contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940" name="us-gaap:LineOfCreditFacilityDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_e7639e12-8031-4db7-a26b-a8dab8020cac" contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940" name="us-gaap:LineOfCreditFacilityInitiationDate1" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">October 20, 2023</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f23602d8-fe1a-46ce-aa34-fbe4021ad2f3" contextRef="C_35b0e141-cb2d-4dff-9f8d-bbf7907cb2e2" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">30.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which includes a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2ee0b22b-ab0f-46b8-8c32-135ae08d6389" contextRef="C_68320a32-ec74-4f41-b87e-f2dd9674bf3a" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">10.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cfe09747-fe93-43a6-8420-fa4c68d95857" contextRef="C_f0479a5b-5a38-497a-80ff-7791e3784b6c" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">50.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f76f17ea-b89d-4c3c-8b2a-5c697d7f8124" contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940" name="us-gaap:LineOfCreditFacilityInterestRateDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0ee3415a-b6a2-4fcf-a5ea-374df2ca7d04" contextRef="C_afad6cff-d187-4932-a282-738faa2ae81b" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">1.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% and the Applicable Margin for the SOFR Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d5104b2c-ea6f-4843-a666-291c69e71beb" contextRef="C_fc42afea-8932-4b6a-a619-45b81296e3ff" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">2.00</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b052e69-88f5-44a0-855e-dc195ad65346" contextRef="C_27014afa-2df6-436a-927d-2e223edddefd" name="us-gaap:DebtInstrumentInterestRateIncreaseDecrease" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">5.00</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_db1cf775-3766-48c7-8b1a-533ea15a823f" contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940" name="us-gaap:LineOfCreditFacilityCommitmentFeePercentage" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">0.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% per annum.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In June 2024, the Company entered into an amendment to the Credit Agreement which amendment permits the Company to undertake open market repurchases of its equity interests not exceeding $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_29ca1057-0b20-4aee-9b7e-bf92ff7f6f07" contextRef="C_5f347f22-26b2-4844-8e1b-763ae3f05973" name="ooma:MaximumOpenMarketRepurchasesOfEquityInterests" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">6.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in the aggregate, subject to certain conditions.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, the Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5da4f501-2320-44eb-83d6-bb6b423d949b" contextRef="C_78b87d2b-cf13-4d7a-894e-3578766e98fc" name="us-gaap:LineOfCreditFacilityAverageOutstandingAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in outstanding borrowings, which are recorded as debt, net of current portion in the condensed consolidated balance sheets. The funds were used for the acquisition of 2600hz, Inc. at the Term SOFR interest rate of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd7d8c20-9eb5-48dc-90d5-ca01ec00964d" contextRef="C_78b87d2b-cf13-4d7a-894e-3578766e98fc" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">7.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">. The Company is in compliance with the covenants contained in the Credit Agreement as of July 31, 2024. Accordingly, $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9699804d-354b-4961-8da5-38376ce2ad4f" contextRef="C_f0479a5b-5a38-497a-80ff-7791e3784b6c" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">21.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of borrowing capacity was available for the purposes permitted by the Credit Agreement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_777f9058-319e-467b-ba57-cd5ae9a9fc3c" contextRef="C_d165fd73-7871-4572-b165-fa00b038d5de" name="us-gaap:LineOfCreditFacilityDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_dae16a76-f9f9-44a0-82fd-8f60302182e4" contextRef="C_d165fd73-7871-4572-b165-fa00b038d5de" name="us-gaap:LineOfCreditFacilityInitiationDate1" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">January 8, 2021</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company, as borrower, entered into a credit and security agreement (&#8220;Key Bank Credit Agreement&#8221;) with KeyBank National Association as Administrative Agent and lender, and KeyBanc Capital Markets Inc. as sole lead arranger and sole book runner. Prior to its termination as described below, the Key Bank Credit Agreement provided for a secured revolving credit facility under which the Company could have borrowed up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0090e324-9d6a-4dca-8ce4-08774989d46f" contextRef="C_968a6f21-78a7-4f49-b4b6-805f7283fa07" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">25.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which included a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b38ccf4d-0ee6-4564-a525-71e546a2456c" contextRef="C_ff320936-ff72-4b90-b0ec-8cace249bfac" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">10.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders were able to increase the total commitments under the credit facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5eb17855-8a4f-4bec-beb3-cf41dc4afd8f" contextRef="C_1623ddf1-043e-4b92-92f6-72c1c7519ef9" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">45.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, subject to certain conditions. Permitted uses of funds borrowed under the Key Bank Credit Agreement included working capital and other general corporate purposes.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company terminated the Key Bank Credit Agreement on June 7, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">16</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_6fe1d160-d9b0-4382-88ff-e4ecbaa88fc0" contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775" name="ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 13: Business Acquisition</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On October 20, 2023, the Company acquired all outstanding stock of 2600hz, Inc. ("2600Hz"), a provider of business communications applications targeted at resellers and carriers. The Company acquired 2600Hz for total cash consideration of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_51405248-87fa-4724-8c06-341c84c417f5" contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9" name="ooma:PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">32.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million (net of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b5cbfc4b-c622-407a-9614-34af77e32a65" contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9" name="us-gaap:CashAcquiredFromAcquisition" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash acquired), subject to certain working capital adjustments. The acquisition did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_92627e6a-1699-49d8-a774-b391c9385cfb" contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9" name="us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">t have any contingency related payments.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_96b6d984-f165-45e2-9344-7b4e470bf2bd" contextRef="C_cbe4c152-825f-4c5d-b586-12b9642ccee3" name="us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table summarizes the final purchase price allocation, as adjusted (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:74.5%;"/>
        <td style="width:2.36%;"/>
        <td style="width:1.96%;"/>
        <td style="width:1%;"/>
        <td style="width:19.18%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Fair Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7e04670c-f189-4524-a59c-96aabee9d527" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,829</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_739fc581-f39c-40d8-92b2-6c2d10612f12" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">440</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1c55b06c-9e7a-400f-8a80-c47ae4e4b536" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">588</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Property plant and equipment, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_daab3bfd-02ee-4d95-a034-21932067611d" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">195</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Intangible assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1df4c629-68ee-47f9-b0c1-96dacc31fbf5" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,200</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_76d24924-72f1-4d14-8657-b4fa627f649d" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:GoodwillGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,414</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts payable and other liabilities</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1746440-5c97-4e43-822b-c2cff42311a7" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,487</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_27db8eb3-9ea3-4fa1-b18c-e911af79fd17" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,131</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total purchase consideration</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_019a04c4-db88-4fb8-94e4-5799e9fd7d02" contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,048</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Intangible assets acquired primarily consisted of developed technology of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_87c71209-4cca-4cc9-af38-9f482cc29b0f" contextRef="C_8681facc-dffb-4541-baff-6d6202549110" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">18.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which represented the fair values of the acquired 2600Hz developed platform technology and have an estimated useful life of seven years as of the date of acquisition. The goodwill recognized was primarily attributable to the assembled workforce and is not expected to be deductible for income tax purposes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In connection with the acquisition, the Company agreed to issue approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1235d21-15bd-403e-b514-c75845e3da97" contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b" name="us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">423,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> restricted stock units that are subject to on-going service conditions and vest over an </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_a6433551-3b48-4cea-975b-8c5d524c5999" contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">18-month</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> period. The fair value of these awards of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3596853a-cf3f-457e-b357-2266c4e44b5d" contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> is being recorded as stock compensation expense over the service period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During the second fiscal quarter of 2023, the Company acquired OnSIP for $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aacad359-4208-4071-96f0-9b477c67afb2" contextRef="C_71a65c70-38e3-4287-87d9-dfeedfd7069b" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">9.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company received $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_894eb5da-c6d4-4f70-bb9a-9d7a9ecaa3ce" contextRef="C_bada150e-1804-484b-a975-897a4e02ba88" name="ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million from the seller for certain working capital adjustments, which is recorded in investing activities in the Company's condensed consolidated statements of cash flows.</span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">17</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_2_managements_discussion_analysis_f"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 2. Management&#8217;s Discussion and Analysis of</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> Financial Condition and Results of Operations</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">The following discussion should be read in conjunction with our condensed consolidated financial statements and related notes appearing elsewhere in this Quarterly Report on Form 10-Q and with our audited financial statements included in our Annual Report on Form 10-K for the year ended January 31, 2024 filed with the SEC on April 2, 2024. In addition to historical financial information, the following discussion contains &#8220;forward-looking statements&#8221; within the meaning of the safe harbor provisions of the Private Securities Litigation Reform Act of 1995 and other legal authority. These forward-looking statements concern our operations, economic performance, financial condition, goals, beliefs, future growth strategies, objectives, plans and current expectations. The words &#8220;believe,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;estimate,&#8221; &#8220;continue,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;should,&#8221; &#8220;plan,&#8221; &#8220;expect,&#8221; &#8220;predict,&#8221; &#8220;could,&#8221; &#8220;potentially&#8221; and variations of such words and similar expressions are intended to identify such forward-looking statements. You should not rely upon forward-looking statements as predictions of future events. Such statements are based on management&#8217;s expectations as of the date of this filing and involve many risks and uncertainties that could cause our actual results, events or circumstances to differ materially from those expressed or implied in our forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those discussed in this Item 2. MD&amp;A, as well as the section titled &#8220;Risk Factors&#8221; included under Part II, Item 1A below. We undertake no obligation to update any forward-looking statements to reflect events or circumstances after the date of such statements or to reflect new information or the occurrence of unanticipated events, except as required by law. We may not actually achieve the plans, intentions or expectations disclosed in our forward-looking statements. Our forward-looking statements do not reflect the potential impact of any future acquisitions, mergers, dispositions, joint ventures or investments we may make.</span></p>
  <p style="padding-bottom:5pt;font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">Executive Overview</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Ooma provides leading communications services and related technologies that bring unique features, ease of use, and affordability to businesses and residential customers through our smart SaaS and unified communications platforms. For businesses of all sizes, we deliver advanced voice and collaboration features including messaging, intelligent virtual attendants, and video conferencing to help them run more efficiently. For consumers, our residential phone service provides PureVoice high-definition voice quality, advanced functionality and integration with mobile devices.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We generate revenues primarily from the sale of subscriptions and other services for our business and residential communications solutions. We generate our product and other revenue from the sale of our on-premise devices and end-point devices. We primarily offer our solutions in the United States and Canada, with limited offerings in certain other countries.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We refer to Ooma Office, Ooma Enterprise, Ooma AirDial, 2600Hz, and OnSIP collectively as Ooma Business. Ooma Residential includes Ooma Telo basic and premier services, as well as Ooma Telo LTE services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Second Quarter Fiscal 2025 Financial Performance</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Total revenue was $64.1 million, up 10% year-over-year, primarily driven by the growth of Ooma Business. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services revenue from Ooma Business grew 15% year-over-year, driven by user growth.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Total gross margin was 60%, comparable to 63% in the prior year quarter. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">GAAP net loss was $2.1 million, compared to net income of $0.3 million in the prior year quarter reflecting continued investments in our operations. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Adjusted EBITDA was $5.6 million, compared to $4.9 million in the prior year quarter.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, we had total cash and cash equivalents of $16.6 million, compared to $17.5 million as of January 31, 2024. Cash usage reflected the repayments of borrowings outstanding under our Credit Agreement.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, we had total debt of $8.5 million, compared to $16.0 million as of January 31, 2024.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Reconciliations of non-GAAP adjusted measures to the most directly comparable GAAP measures are presented below under Adjusted EBITDA and Non-GAAP Financial Measures.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In June 2024, our Board of Directors authorized a stock repurchase plan of repurchasing up to $4.0 million of our common stock. Repurchases of our common stock may be effected, from time to time, in open market, negotiated or block transactions, or other means, in accordance with applicable securities laws. The timing and the amount of any repurchased common stock will be determined by our management based on its evaluation of market conditions and other factors. We will fund our repurchase plan with cash and retire any repurchased shares. The plan does not obligate us to repurchase any specific dollar amount or to acquire any specific number of shares of our common stock.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2023 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">18</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Key Business Metrics</span><span style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We review the key metrics below to evaluate our business, measure our performance, identify trends affecting our business, formulate financial projections and make strategic decisions (in thousands, except percentages):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:60.92%;"/>
    <td style="width:1.78%;"/>
    <td style="width:1.78%;"/>
    <td style="width:15.98%;"/>
    <td style="width:1.78%;"/>
    <td style="width:1.78%;"/>
    <td style="width:15.98%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Core users</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,244</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,237</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Annualized exit recurring revenue (AERR)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">233,081</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">215,355</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net dollar subscription retention rate</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">100%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">99%</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Adjusted EBITDA</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,635</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,862</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:5.36pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Core Users</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> increased year-over-year, which was primarily driven by growth in business users. As of July 31, 2024, Ooma Business users comprised approximately 40% of our total core users, up from 38% as of July 31, 2023. We believe that the number of our core users is an indicator of our market penetration, the growth of our business and our anticipated future subscription and services revenue. We define our core users as the number of active residential user accounts and business user extensions (excluding Talkatone and 2600Hz users). We believe that the relationship that we establish with our core users positions us to sell additional premium communications services and other new connected services to them.&#8204;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Annualized Exit Recurring Revenue ("AERR")</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> grew year-over-year due to an increase in the average revenue per core user, which was largely driven by an increasing mix of business users. We believe that AERR is an indicator of recurring subscription and services revenue for near-term future periods. We estimate our AERR by dividing our recurring quarterly subscription revenue from our Core Users by the average number of core users each quarter and annualize by multiplying by four. We then multiply that result by the number of core users at the end of the period to calculate AERR. Beginning in the third quarter of fiscal 2024, we have added $8.0 million annual recurring revenue from 2600Hz to AERR.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Net Dollar Subscription Retention Rate (&#8220;NDRR&#8221;)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> increased due to reduction in user churn and increase in Average Monthly Recurring Subscription Revenue. We believe that our net dollar subscription retention rate provides insight into our ability to retain and grow our subscription and services revenue and is an indicator of the long-term value of our customer relationships and the stability of our revenue base.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We define our NDRR as (i) one plus (ii) the quotient of Net Dollar Change divided by Average Monthly Recurring Subscription Revenue. We define Net Dollar Change as the quotient of (i) the difference of our Monthly Recurring Subscription Revenue at the end of a period minus our Monthly Recurring Subscription Revenue at the beginning of a period minus our Monthly Recurring Subscription Revenue at the end of the period from new customers we added during the period, all divided by (ii) the number of months in the period. We define our Average Monthly Recurring Subscription Revenue as the average of the Monthly Recurring Subscription Revenue at the beginning and end of the measurement period.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">19</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Adjusted EBITDA</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition, we use Adjusted EBITDA (Earnings Before Interest Tax and Depreciation and Amortization) to manage our business, evaluate our performance and make planning decisions. We consider this metric to be a useful measure of our operating performance, because it contains adjustments for unusual events or factors that do not directly affect what management considers being the core operating performance, and are used by our management for that purpose. We also believe this measure enables us to better evaluate our performance by facilitating a meaningful comparison of our core operating results in a given period to those in prior and future periods. Investors often use similar measures to evaluate the operating performance with competitors. Adjusted EBITDA represents net income before interest and other income, income taxes, depreciation and amortization of capital expenditures, amortization of intangible assets and acquisition related costs, stock-based compensation and related taxes, litigation costs, facilities consolidation gain, restructuring costs, and gain on note conversion.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Adjusted EBITDA has limitations as an analytical tool, and you should not consider it in isolation or as a substitute for analysis of our results as reported under GAAP. Some of these limitations are:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Adjusted EBITDA does not consider any expenses for assets being depreciated and amortized that are necessary to our business;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Adjusted EBITDA does not consider the impact of interest and other income/expense, income taxes, stock-based compensation and related taxes, amortization of intangible assets, acquisition-related costs, litigation costs, restructuring costs and non-recurring gains; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Other companies, including companies in our industry, may calculate Adjusted EBITDA differently, which reduces its usefulness as a comparative measure.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Because of these limitations, Adjusted EBITDA should be considered alongside other financial performance measures, including net loss and our other GAAP results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table provides a reconciliation of GAAP net loss to Adjusted EBITDA, for each the periods indicated (in thousands):</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:43.82%;"/>
    <td style="width:1.28%;"/>
    <td style="width:1.02%;"/>
    <td style="width:1%;"/>
    <td style="width:9.76%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.9%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.9%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.9%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">GAAP net (loss) income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(2,137</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">271</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(4,276</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(55</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Reconciling items:</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Interest and other expense (income), net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">103</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(532</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">160</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(947</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Income tax provision</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">438</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">267</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">763</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">400</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Depreciation and amortization of capital expenditures</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,038</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,125</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,073</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,188</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Amortization of intangible assets and acquisition-related costs</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,471</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">692</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,955</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,433</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Stock-based compensation and related taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,627</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,695</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">9,135</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,290</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Litigation costs</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">95</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">300</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">95</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">300</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Facilities consolidation gain</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(956</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(956</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Restructuring costs</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">710</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
    <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Gain on note conversion</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(980</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Adjusted EBITDA</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,635</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,862</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10,635</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">9,653</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">20</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">Components of Results of Operations	</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Revenue</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> is derived primarily from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services, and to a lesser extent from payments associated with our Talkatone mobile application and prepaid international calls. We expect our subscription and services revenue to grow as we expand our core user base, driven primarily by growth in Ooma Business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other revenue </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">consists primarily of sales of our on-premise devices and end-point devices used in connection with our services, including shipping and handling fees for our direct customers.</span></p>
  <p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Cost of revenue and gross margin</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Cost of subscription and services revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> includes payments made for third-party network operations and telecommunications services, license fees, certain telecom taxes and fees, including Federal Universal Service Fund (&#8220;USF&#8221;) contributions, credit card processing fees, costs to build out and maintain data centers, depreciation and maintenance of servers and equipment, personnel costs associated with customer care and network operations support, amortization of certain acquired intangible assets, and allocated overhead costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Cost of product and other revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> includes the costs associated with the manufacturing of our on-premise devices and end-point devices, including Ooma AirDial, as well as personnel costs for employees and contractors, costs related to porting our customers&#8217; phone numbers to our service, shipping and handling costs, tariffs imposed on imported product and allocated overhead costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services gross margin</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> may fluctuate from period-to-period based on the interplay of a number of factors, including revenue mix and fluctuations in the costs described above. We expect our subscription and services gross margin to increase over the long-term, primarily as we achieve scale efficiencies and as Ooma Business revenue becomes a larger majority of total subscription revenue.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other gross margin</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> may fluctuate from period-to-period based on a number of factors, including total units shipped as compared to the direct costs of production and relatively fixed personnel costs incurred. We sell our on-premise devices at aggressive price points to facilitate the adoption of our platforms and services. Additionally, some product costs have become subject to significantly higher pricing we experienced due to supply chain constraints in the global macroeconomic environment as well as certain components becoming subject to end-of-life and we may not be able to fully offset such higher costs through price increases. Another factor is the high AirDial installation costs due to ramp up efforts. Accordingly, we expect our product and other gross margin will continue to be negatively impacted by these higher component costs and AirDial installation costs. We expect our product and other gross margin to continue to be negative for the foreseeable future.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">   </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our subscription and services gross margin is significantly higher than product and other gross margin. As a result, any significant change in revenue mix will cause our total gross margin to change. For example, in periods where we sell significantly more on-premise devices or other products, we would expect our total gross margin to be impacted.</span></p>
  <p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Operating expenses</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Sales and marketing expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> consist primarily of personnel costs for employees and contractors, advertising and marketing costs, sales commissions paid to internal sales personnel and third parties, amortization of capitalized sales commissions, amortization of acquired customer relationship intangible assets, travel expenses and allocated overhead costs. We expect our sales and marketing expenses to increase in absolute dollars as we continue to grow our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Research and development expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> are focused on developing new and expanded features for our solutions and improvements to our platforms and backend architecture. Research and development expenses consist primarily of personnel costs for employees and contractors, including third-party development, and allocated overhead costs. We expect our research and development expenses to increase in absolute dollars as we continue to grow our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">General and administrative expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> consist of personnel costs for our finance, legal, human resources and other administrative employees and contractors, as well as professional service fees, certain acquisition-related costs, and allocated overhead costs. We expect our general and administrative expenses to increase in absolute dollars as we continue to grow our business.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">21</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">Consolidated Results of Operations</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table sets forth selected consolidated statements of operations data</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">for each of the periods indicated (in thousands):</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:43.794%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
    <td style="width:1.279%;"/>
    <td style="width:1.279%;"/>
    <td style="width:11.493%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Revenue:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">59,566</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">54,726</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">117,955</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">107,775</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,563</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,627</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">8,673</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,430</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">64,129</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">58,353</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">126,628</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">115,205</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cost of revenue:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">17,654</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">15,456</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">35,114</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">30,181</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,775</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6,309</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14,699</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">12,484</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total cost of revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">25,429</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">21,765</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">49,813</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">42,665</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross profit</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">38,700</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,588</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">76,815</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">72,540</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Operating expenses:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">19,256</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">18,842</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">38,737</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,832</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">13,640</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">11,768</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">27,433</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">23,721</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,400</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,972</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14,978</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">12,589</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total operating expenses</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">40,296</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,582</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">81,148</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">73,142</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(Loss) income from operations</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(1,596)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(4,333)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(602)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Interest and other (expense) income, net</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(103)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">532</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">820</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">947</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(Loss) income before income taxes</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(1,699)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">538</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(3,513)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">345</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Income tax provision</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(438)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(267)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(763)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(400)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Net (loss) income</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(2,137)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">271</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(4,276)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(55)</span></p></td>
   </tr>
  </table>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Costs of revenue and operating expenses included stock-based compensation expense and related payroll taxes as follows (in thousands):</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:44.155%;"/>
    <td style="width:1.161%;"/>
    <td style="width:11.93%;"/>
    <td style="width:1.161%;"/>
    <td style="width:1.161%;"/>
    <td style="width:11.93%;"/>
    <td style="width:1.161%;"/>
    <td style="width:1.161%;"/>
    <td style="width:11.93%;"/>
    <td style="width:1.161%;"/>
    <td style="width:1.161%;"/>
    <td style="width:11.93%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cost of revenue</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">285</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">260</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">558</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">520</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,005</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">512</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,021</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,032</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,415</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,177</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,807</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,357</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,922</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,746</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,749</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,381</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total stock-based compensation and related taxes</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,627</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,695</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">9,135</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,290</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Comparison of the three and six months ended July 31, 2024 and 2023 </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">(dollars in tables are in thousands)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">:</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Revenue</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:22.76%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:8.9%;"/>
    <td style="width:5.68%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.38%;"/>
    <td style="width:5.96%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Revenue:</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">59,566</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">54,726</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,840</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">9 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">117,955</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">107,775</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10,180</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">9 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,563</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,627</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">936</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">26 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">8,673</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,430</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,243</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">17 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:5pt;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">64,129</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">58,353</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,776</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">126,628</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">115,205</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">11,423</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Percentage of revenue:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">93%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">94%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">93%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">94%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:5pt;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">100%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">100%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">100%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">100%</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">22</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Three months ended July 31, 2024 Compared to Three months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We derived approximately 61% and 57% of our total revenue from Ooma Business and approximately 36% and 41% from Ooma Residential for the three months ended July 31, 2024 and 2023, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services revenue increased $4.8 million or 9% year-over-year, primarily attributable to an increase in our core users and an increase in the average revenue per core user. Revenue increase year-over-year is also partially attributable to revenue contributed from 2600Hz, which we acquired at the end of third quarter of fiscal 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other revenue increased $0.9 million or 26% year-over-year, primarily attributable to an increase of AirDial units shipped and sale of accessories to Ooma Enterprise customers.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Six months ended July 31, 2024 Compared to Six months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We derived approximately 61% and 56% of our total revenue from Ooma Business and approximately 37% and 41% from Ooma Residential for the six months ended July 31, 2024 and 2023, respectively.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services revenue increased $10.2 million or 9% year-over-year, primarily attributable to an increase in our core users and an increase in the average revenue per core user, driven by organic growth, which was in part due to a higher mix of sales of our Office Pro tier services, and revenue contributed from 2600Hz.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other revenue increased $1.2 million or 17% year-over-year, primarily attributable to the increase of AirDial units shipped and sale of accessories to Ooma Enterprise customers.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">Cost of revenue and gross margin</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:22.76%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:8.9%;"/>
    <td style="width:5.68%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.38%;"/>
    <td style="width:5.96%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Cost of revenue:</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">17,654</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">15,456</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,198</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">35,114</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">30,181</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,933</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">16 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,775</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6,309</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,466</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">23 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14,699</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">12,484</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,215</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">18 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:5pt;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total cost of revenue</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">25,429</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">21,765</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,664</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">17 %</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">49,813</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">42,665</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,148</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">17 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross profit:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">41,912</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">39,270</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,642</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">82,841</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">77,594</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,247</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(3,212)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(2,682)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(530)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">20 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(6,026)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(5,054)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(972)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">19 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">38,700</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,588</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,112</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">76,815</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">72,540</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,275</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">6 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross margin:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">   </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">70 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">72 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">70 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">72 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(70)%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(74)%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(69)%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(68)%</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:5pt;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">60 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">63 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">61 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">63 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">23</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Three months ended July 31, 2024 Compared to Three months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services gross margin of 70% decreased year-over-year from 72%. Cost of subscription and services revenue increased $2.2 million or 14% year-over-year, primarily due to a $0.9 million increase in infrastructure costs, a $0.7 million increase in depreciation and amortization expense, a $0.4 million increase in personnel-related costs, and a $0.4 million increase in regulatory fees, partially offset by a $0.2 million decrease in software maintenance costs. Overall, the increase in the cost of subscription and services in part reflects growth of Ooma Business and an increase in infrastructure costs and amortization of acquired intangible assets due to the addition of 2600Hz near the end of the third quarter of fiscal 2024.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other revenue gross margin increased to negative 70% from negative 74% in the prior year period. The negative product margin was primarily due to the usage of certain higher cost components that we procured in prior fiscal years to stay ahead of pandemic driven supply chain issues.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Six months ended July 31, 2024 Compared to Six months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and services gross margin of 70% decreased year-over-year from 72%. Cost of subscription and services revenue increased $4.9 million year-over-year, primarily due to a $2.1 million increase in infrastructure costs, a $1.4 million increase in depreciation and amortization expense, a $0.9 million increase in regulatory fees, a $0.9 million increase in personnel-related costs, partially offset by a $0.4 million decrease in supplies and equipment costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and other revenue gross margin decreased to negative 69% from negative 68% in the prior year period, primarily due to the usage of certain higher cost components that we procured in prior fiscal years to stay ahead of pandemic driven supply chain issues.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Operating expenses</span><span style="color:#003a5d;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:22.76%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:8.9%;"/>
    <td style="width:5.68%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.38%;"/>
    <td style="width:5.96%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Change</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">19,256</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">18,842</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">414</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">38,737</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,832</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,905</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">13,640</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">11,768</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,872</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">16 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">27,433</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">23,721</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,712</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">16 %</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="background-color:#d4e5f7;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">7,400</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">5,972</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,428</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">24 %</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14,978</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">12,589</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2,389</span></p></td>
    <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">19 %</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:5pt;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total operating expenses</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">40,296</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">36,582</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,714</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10 %</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">81,148</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">73,142</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">8,006</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">11 %</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Three months ended July 31, 2024 Compared to Three months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Sales and marketing expenses increased $0.4 million or 2% year-over-year, primarily due to a $1.4 million increase in personnel-related costs to scale with the overall growth of our business, partially offset by a $1.0 million decrease in advertising and marketing expense.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Research and development expenses increased $1.9 million or 16% year-over-year, primarily due to a $1.7 million increase in personnel and contractor related costs, driven by higher headcount, and a $0.2 million increase in allocated overhead costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">General and administrative expenses increased $1.4 million or 24% year-over-year, primarily due to an absence of a $1.0 million facility consolidation gain in the prior year period which did not recur in the current fiscal year, a $0.6 million increase in personnel-related costs to scale with the overall growth of our business, partially offset by a $0.2 million decrease in litigation costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A significant portion of the year-over-year increase in personnel-related costs for operating expenses was due to increases in headcount attributable to the 2600Hz acquisition near the end of the third quarter of fiscal 2024.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">24</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Six months ended July 31, 2024 Compared to Six months ended July 31, 2023</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Sales and marketing expenses increased $1.9 million or 5% year-over-year, primarily due to a $3.1 million increase in personnel and travel related costs, a $0.2 million increase in amortization of intangibles, partially offset by a $1.4 million decrease in advertising and marketing costs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Research and development expenses increased $3.7 million or 16% year-over-year, primarily due to a $3.0 million increase in personnel-related costs, driven by higher headcount, a $0.3 million increase in allocated overhead costs, and a $0.4 million increase in restructuring costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">General and administrative expenses increased $2.4 million or 19% year-over-year, primarily due to a $1.3 million increase in personnel-related costs, driven by higher headcount, an absence of a $1.0 million facility consolidation gain which did not recur in the current fiscal year, and a $0.3 million increase in restructuring costs, partially offset by a $0.2 million decrease in litigation costs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A significant portion of the year-over-year increase in personnel-related costs and amortization of intangibles for operating expenses was due to the 2600Hz acquisition near the end of the third quarter of fiscal 2024.</span></p>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">Liquidity and Capital Resources</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, we had $16.6 million of total cash and cash equivalents, which we believe will be sufficient to meet our cash needs for at least the next 12 months. Our future capital requirements will depend on many factors, including our growth rate, the introduction of new and enhanced offerings, the timing and extent of our sales and marketing activities and research and development expenditures and other factors. We may in the future make investments in or acquisitions of businesses or technologies, which may require the use of cash.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The table below provides selected cash flow information for the periods indicated (in thousands):</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:66.36%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.52%;"/>
    <td style="width:13.84%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.52%;"/>
    <td style="width:13.72%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10,672</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,836</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net cash used in investing activities</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(3,192)</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(968)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net cash (used in) provided by financing activities</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(8,431)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">974</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net (decrease) increase in cash and cash equivalents</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(951)</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,842</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Operating Activities</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The table below provides selected cash flow information for the periods indicated (in thousands):</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:66.36%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.52%;"/>
    <td style="width:13.84%;"/>
    <td style="width:1.52%;"/>
    <td style="width:1.52%;"/>
    <td style="width:13.72%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net loss</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(4,276)</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(55)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Non-cash charges</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">14,631</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">11,245</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Changes in operating assets and liabilities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Decrease (Increase) in accounts receivable</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">1,675</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(1,481)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Decrease in inventories and deferred inventory costs</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,527</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,347</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Increase in prepaid expenses and other assets</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(1,571)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(1,485)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Decrease in accounts payable, accrued expenses and other liabilities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(4,399)</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(6,896)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Increase in deferred revenue</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">85</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">161</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10,672</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">4,836</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">25</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For the six months ended July 31, 2024, our net loss of $4.3 million included non-cash items of $14.6 million primarily related to stock-based compensation, operating lease expense, depreciation and amortization expense and gain on note conversion. Operating asset and liability changes for the six months ended July 31, 2024 included:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.693432091613477%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">a decrease of $1.7 million in accounts receivable due to the timing of customer cash collections;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.693432091613477%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">a decrease of $4.5 million in inventories and deferred inventory costs; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.693432091613477%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">an increase of $1.6 million in prepaid expenses and other current and non-current assets; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.693432091613477%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">a net decrease of $4.4 million in accounts payable, accrued expenses and other liabilities due to the timing of payments; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.693432091613477%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">an increase of $0.1 million in deferred revenue.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Cash provided by operating activities for the six months ended July 31, 2024 increased $5.8 million year-over-year, which primarily reflected working capital impacts resulting from the timing of payments. Although we have generated cash from operations in recent periods, our operating cash flow may not remain positive in the future as we continue to invest in efforts to scale our business.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Investing Activities</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For the six months ended July 31, 2024, cash used in investing activities was $3.2 million, which consisted of capital expenditures of $3.2 million. Cash used in investing activities increased $2.2 million year-over-year primarily due to the receipt of proceeds from investment maturities in the first half of fiscal 2024, which did not recur in the first half of fiscal 2025.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Financing Activities</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For the six months ended July 31, 2024, cash used in financing activities was $8.4 million, which consisted of $7.5 million debt repayments, payments of $1.6 million related to shares repurchased for tax withholdings on vesting of RSUs, and payments of $0.9 million under our stock repurchase plan, offset by proceeds of $1.6 million from the issuance of common stock from our ESPP and stock option exercises. Cash used in financing activities increased $9.4 million year-over-year, which primarily reflected repayments of borrowings outstanding under our Credit Agreement.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Revolving Credit Facility</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In October 2023, we entered into a credit and security agreement with certain banks that provides for a secured revolving credit facility under which we may borrow up to an aggregate of $30.0 million and, subject to certain conditions, may be increased to up to $50.0 million. As of July 31, 2024, we had $8.5 million of outstanding borrowings and were in compliance with all loan covenants.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Contractual Obligations and Commitments</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Refer to Note 6: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Operating Leases</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and Note 11: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Commitments and Contingencies</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> in the notes to our condensed consolidated financial statements for disclosures related to our lease obligations and non-cancelable purchase commitments.</span></p>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;min-width:fit-content;">Critical Accounting Policies and Estimates</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Refer to Part II, Item 7. &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; of our Annual Report on Form 10-K for the fiscal year ended January 31, 2024 for a discussion of our critical accounting policies and estimates. There have been no changes to the Company&#8217;s significant accounting policies and estimates as outlined in our fiscal 2024 Annual Report in the first half of fiscal 2025.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">26</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_3_quantitative_qualitative_disclos"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 3: Quantitative and Qualitati</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">ve Disclosures About Market Risk</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There have been no material changes to the Company&#8217;s market risk during the first half of fiscal 2025. Refer to our market risk disclosures set forth in Part II, Item 7A, &#8220;Quantitative and Qualitative Disclosures About Market Risk&#8221; of our Annual Report for the fiscal year ended January 31, 2024.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_4_controls_procedures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 4. Controls</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> and Procedures</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Evaluation of Disclosure Controls and Procedures. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our Management, with the participation of our chief executive officer and our chief financial officer, evaluated the effectiveness of our disclosure controls and procedures as of July 31, 2024. The term &#8220;disclosure controls and procedures,&#8221; 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 a company in the reports that it files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the SEC's rules and forms. Disclosure controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed by a company in the reports that it files or submits under the Exchange Act is accumulated and communicated to the company's management, including its principal executive and principal financial officers, as appropriate to allow timely decisions regarding required disclosure. Management recognizes that any controls and procedures, no matter how well designed and operated, can provide only reasonable assurance of achieving their objectives, and management necessarily applies its judgment in evaluating the cost-benefit relationship of possible controls and procedures. Based on the evaluation of our disclosure controls and procedures as of July 31, 2024, our chief executive officer and chief financial officer concluded that, as of such date, our disclosure controls and procedures were effective at the reasonable assurance level.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Changes in Internal Control over Financial Reporting. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There were no changes in our internal control over financial reporting identified in connection with the evaluation required by Rule 13a-15(d) and 15d-15(d) of the Exchange Act that occurred during the quarter ended July 31, 2024 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting. We have not experienced any significant impact to our internal controls over financial reporting despite the fact that most of our employees who are involved in our financial reporting processes and controls are continuing to work remotely.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Inherent Limitations on Effectiveness of Controls. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Because of inherent limitations, internal control over financial reporting may not prevent or detect misstatements and 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></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">27</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="part_ii_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PART II &#8212; OTHE</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">R INFORMATION</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1_legal_proceedings"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 1. Legal</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> Proceedings</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For a discussion of legal proceedings, see &#8220;Note 11: Commitments and Contingencies&#8221; of the notes to the condensed consolidated financial statements in this Form 10-Q, which information is incorporated herein by reference.</span></p>
  <p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1a_risk_factors"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 1A. Ri</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">sk Factors</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our current and prospective investors should carefully consider the risks and uncertainties described below, together with all of the other information in this Quarterly Report on Form 10-Q, including our condensed consolidated financial statements and the related notes, &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; and the "Cautionary Note Regarding Forward Looking Statements," before making investment decisions regarding our common stock. The risks and uncertainties described below may not be the only ones we face but include the most significant factors currently known by us. Additional risks and uncertainties that we are unaware of, or that we currently believe are not material, also may become important factors that affect us. If any of the risks occur, our business, financial condition, results of operations could be materially and adversely affected. In that event, the trading price of our common stock could decline, and you could lose part or all of your investment.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Risk Factor Summary</span><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our business is subject to numerous risks and uncertainties, and the following is a summary of key risk factors when considering an investment. This summary should be read together with the more detailed description of each risk factor contained in the subheadings further below and should not be relied upon as an exhaustive summary of the material risks facing our business:</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:3pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Risks Related to Our Business and Industry</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:1pt;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we are unable to attract new users in a cost-effective manner, our business will be materially and adversely affected. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our customers may terminate their subscriptions for our services in most cases without penalty, and increased customer turnover, as well as costs we incur to retain our customers and induce them to add users and/or functionality could materially and adversely affect our financial performance.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A significant portion of our revenues today come from small and medium-sized businesses, which may have fewer financial resources to weather an economic downturn, rising inflation, and defaults by financial institutions. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we are unable to develop, acquire and/or sell new, or enhance existing, products, services or applications on a timely and cost-effective basis, our business, financial condition, and results of operations may be materially and adversely affected.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may expand through acquisitions of, or investments in, other companies, each of which may divert our management&#8217;s attention, result in additional dilution to our stockholders, increase expenses, disrupt our operations and harm our results of operations.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We depend on several sole suppliers to provide the components for, and a small number of vendors to manufacture, certain on-premise devices and end-point devices we sell, and any delay or interruption in manufacturing, configuring and delivering by these third parties would result in delayed or reduced shipments to our customers and may increase our costs and harm our business and results of operations. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A ransomware attack or other security breach could delay or interrupt service to our customers, compromise the integrity of our systems or data that we collect, result in the loss of our intellectual property or confidential information, harm our reputation, or subject us to significant liability.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely significantly on retailers and reseller partnerships to sell our products&#894; our failure to effectively develop, manage and maintain these sales channels could materially and adversely affect our revenue and business. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We face competition in our markets by our competitors (including mergers or other strategic transactions involving our competitors) and may lack sufficient financial or other resources to compete successfully.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may be exposed to significant risks in connection with our international operations.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">To deliver our services, we rely on third parties for our network connectivity and co&#8209;location facilities for certain features in our services and for certain elements of providing our services.</span></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">28</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Interruptions in our software or services could harm our reputation, result in significant costs to us and impair our ability to sell our services.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely on third parties, including third parties located in Russia, for some of our software development, quality assurance and operations, and anticipate we will continue to do so for the foreseeable future.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely on third parties to provide the majority of our customer service and support representatives. If these third parties do not provide our customers with reliable, high&#8209;quality service, our reputation and our business will be harmed, and we may be exposed to significant liability. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our business could suffer if we cannot obtain or retain direct inward dialing numbers, or DIDs, are prohibited from obtaining local or toll-free numbers, or are limited to distributing local or toll-free numbers to only certain customers.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we are unable to effectively process local number and toll-free number portability provisioning in a timely manner, our growth may be negatively affected.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may not be able to achieve or sustain profitability in the future and our rates of growth may decline.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our quarterly and annual results have fluctuated in the past and may continue to do so. As a result, we may fail to meet or to exceed the expectations of analysts or investors, which could cause our stock price to fluctuate.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we do not manage inventory levels and purchase commitments effectively, we may experience excess inventory levels, inventory obsolescence, or inventory shortages that could adversely affect our results of operations.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our level of indebtedness could adversely affect our financial condition.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our existing credit agreement imposes operating and financial restrictions on us.</span></div></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Risks Related to Security, IT Systems and Intellectual Property</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">   </span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We have incurred, and expect to continue to incur, significant costs to protect against security breaches. We may incur significant additional costs in the future to address any actual or perceived security breaches.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Failures in internet infrastructure or interference with broadband access, or providers of broadband services blocking or degrading our services, could cause current or potential customers to believe that our systems are unreliable, leading our current customers to switch to our competitors or potential customers to avoid using our services.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we experience excessive fraudulent activity or cannot meet evolving credit card association merchant standards, we could incur substantial costs and lose the right to accept credit cards for payment, which could cause our customer base to decline significantly.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any failure to obtain protection of our intellectual property rights could materially and adversely affect our business.</span></div></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Risks Related to Regulatory and Tax Matters</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Future legislative or regulatory actions, such as the adoption of additional 911 requirements or new taxes, could increase our costs and adversely affect our business and expose us to liability.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we cannot comply with regulations, including communications and telecommunications laws and rules of the Federal Communications Commission ("FCC") imposing call signaling requirements on VoIP providers like us, we may be subject to fines, cease and desist orders, restrictions on our business, or other penalties. </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC has continued to increase regulation of interconnected VoIP services and may at any time determine certain VoIP services are telecommunications services subject to traditional common carrier regulation.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Reform of federal and state USF programs could increase the cost of our service to our customers, diminishing or eliminating our pricing advantage.</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We process, store, and use personal information and other data, which subjects us and our customers to a variety of evolving industry standards, contractual obligations and other legal rules related to privacy, which may increase our costs, decrease adoption and use of our products and services, and expose us to liability.</span></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">29</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Risks Related to Our Business and Our Industry</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we are unable to attract new users in a cost-effective manner, our business will be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In order to grow our business, we must continue to attract new users in a cost-effective manner. We use and periodically adjust the mix of advertising and marketing programs to promote our services. Significant increases in the pricing of one or more of our advertising channels could increase our advertising costs or may cause us to choose less expensive and perhaps less effective channels to promote our services. As we add to or change the mix of our advertising and marketing strategies, we may need to expand into channels with significantly higher costs than our current programs, which could materially and adversely affect our results of operations. We will incur advertising and marketing expenses in advance of when we anticipate recognizing any revenue generated by such expenses, and we may fail to experience an increase in revenue or brand awareness as a result of such expenditures. We have made in the past, and may make in the future, significant expenditures and investments in new advertising campaigns, and we cannot assure you that any such investments will lead to the cost-effective acquisition of additional customers. New users are drawn to our products and services by rankings circulated by organizations such as Amazon, Apple and Google app stores and highly regarded publications such as PCMag and Consumer Reports. If we are unable to maintain effective advertising programs and garner favorable rankings, our ability to attract new customers could be materially and adversely affected, which could lead us to increase our advertising and marketing expenditures substantially, and our results of operations may suffer.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We market our products and services principally to businesses and households. Some of these business customers and consumers are less technically knowledgeable and may be resistant to new technologies such as our cloud-based communications solutions and our connected services. Because our potential customers need to connect additional hardware at their location and take other steps not required for the use of traditional communications services such as telephone, fax and e-mail, these customers may be reluctant to use our service. These customers may also lack sufficient resources, financial or otherwise, to invest in learning about our services, and therefore may be unwilling to adopt them. If these customers choose not to adopt our services, our ability to grow our business could be negatively affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our customers may terminate their subscriptions for our service in most cases without penalty, and increased customer turnover, as well as costs we incur to retain our customers, encourage them to add users and purchase additional functionalities and premium services, could materially and adversely affect our financial performance.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our service plans are generally sold as monthly subscriptions and our customers may terminate their monthly subscription for convenience without any penalty. Certain of our service plans are also sold as annual and multi-year subscriptions, typically ranging up to three years. However, our customers have no obligation to renew their subscriptions for such services and may elect to terminate their subscription for any number of reasons. As a result, we have no assurance that the revenue stream associated with a particular customer account will continue beyond the initial subscription term. Additionally, our Ooma Business customers may choose to reduce the number of lines or remove some of the solutions to which they subscribe. Given Ooma Business customers generally pay more for their subscriptions than residential or mobile customers, any increased churn in business customers could materially and adversely affect our core user growth, financial performance and results of operations, and thereby increase the costs we incur in our efforts to retain our customers and encourage them to upgrade their services and increase their number of users.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our core user churn rate could increase significantly in the future if customers are not satisfied with our service, the value proposition of our services, our ability to otherwise meet their needs and expectations, and/or other factors beyond our control, including the impact of inflation and other macroeconomic developments. As a result, we may have to acquire new customers or new users within our existing customer base on an ongoing basis simply to maintain our existing level of revenue. If a significant number of customers, or one or more larger customers, terminate, reduce or fail to renew their subscriptions, we may need to incur significantly higher marketing expenditures than anticipated to maintain or increase our revenue, which could harm our business and results of operations. Our efforts to mitigate risk of customer churn due to any factor may divert management&#8217;s time and focus away from efforts to address customer churn due to other factors. This broad-based susceptibility to churn could materially and adversely affect our financial performance.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future success also depends in part on our ability to sell additional subscriptions and functionalities to our current customer base, which may require increasingly sophisticated, costlier sales efforts and a longer sales cycle. Any increase in the costs necessary to upgrade, expand and retain existing customers could materially and adversely affect our financial performance. Such increased costs could cause us to increase our subscription rates, which could increase our customer turnover rate. If our efforts to convince customers to add users and, in the future, to purchase additional functionalities are not successful, our business may suffer.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">30</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">A significant portion of our revenues today come from small and medium-sized businesses, which may have fewer financial resources to weather an economic downturn, rising inflation, and defaults by financial institutions.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A significant portion of our revenues today comes from small and medium-sized businesses. These customers may be more susceptible to negative impact from economic downturns, rising inflation, and defaults by financial institutions than larger, more established businesses as these businesses typically have fewer financial resources than larger entities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As the majority of our customers pay for our subscriptions through credit and debit cards, weakness in certain segments of the credit markets and in the United States and global economies has resulted in and may in the future result in increased numbers of rejected credit and debit card payments and business failures, which could materially affect our business by increased customer default or cancellations. If small and medium-sized businesses experience financial hardship or declare bankruptcy as a result of a weak economy, defaults by financial institutions, or for any other reason, the overall demand for our subscriptions could be materially and adversely affected.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we are unable to develop, acquire and/or sell new, or enhance existing, products, services or applications on a timely and cost-effective basis, our business, financial condition, and results of operations may be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The cloud-based communications and connected services industries are characterized by rapid changes in customer requirements, frequent introductions of new and enhanced services, and continuing and rapid technological advancement. To compete successfully in these emerging markets, we must anticipate and adapt to unpredictable technological changes and evolving industry standards and continue to design, develop, manufacture and sell new and enhanced services and products that provide increasingly higher levels of performance and reliability at lower cost. For fiscal 2024, we derived approximately 58% of our revenue from Ooma Business and approximately 40% from Ooma Residential and expect they will continue to account for most of our revenue for the foreseeable future.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">However, our future success will also depend on our ability to introduce and sell new services, such as our fiscal 2023 launch of Ooma Office Pro Plus or our 2600Hz solutions, as well as products, features and functionality that enhance or are beyond the voice, fax, text and connected services we currently offer, as well as to improve usability and support and increase customer satisfaction. The success of new product introductions, such as our fiscal 2023 launch of AirDial, depends on a number of factors including, but not limited to: pricing, market and customer acceptance, the ability to successfully identify and anticipate product trends, effective forecasting and management of product demand, purchase commitments and inventory levels, availability of products in appropriate quantities to meet anticipated demand, ability to obtain timely and adequate delivery of components for our new products from third-party suppliers, management of manufacturing and supply costs, management of risks and delays associated with product design and production ramp-up</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> delays in customer readiness for AirDial installations, the quality of AirDial installations performed by third-parties, ability to maintain the levels of service uptime and performance required by our customers, and the risk that new products or enhanced versions of existing products, may have quality issues or other defects or bugs in the early stages of introduction including testing of new components and features. Moreover, the market for plain old telephone service ("POTS") line replacement is relatively new and characterized by long sales cycles, and Ooma AirDial may not result in long-term success or significant revenue for us. Our failure to develop solutions that satisfy customer preferences in a timely and cost-effective manner may harm our ability to renew our subscriptions with existing customers and to create or increase demand for our services and products and may materially and adversely impact our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The introduction or announcement of new services and technologies by our competitors, including artificial intelligence ("AI") tools, could make our existing solutions obsolete, cause customers to defer purchases of our products and services, or otherwise adversely affect our business and results of operations. Further, we may experience higher product returns from retailers or reseller partners and may face challenges managing the inventory of new or existing products, which could lead to excess inventory charges and/or discounting of such products. In addition, new products may have varying selling prices and higher costs or different kinds of costs compared to legacy products, which could negatively impact our gross margins and operating results. For example, as and to the extent sales of AirDial increase, we expect to incur higher levels of support costs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">31</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may experience difficulties with software development, operations, design or marketing that could delay or prevent the introduction or implementation of new or enhanced products, services and applications. We have in the past experienced and may in the future experience delays in the planned release dates of new features and upgrades and have discovered defects in new services and applications after their introduction. New products, or new features or upgrades to existing products and services, may not be released according to schedule, or, when released, they may contain defects, bugs or other quality or reliability problems that can interfere with their intended operations or the intended operation of the systems in which our products or services are installed, and there can be no assurance that our pre-shipment or pre-release testing programs will be adequate to detect all such quality or reliability problems. Either of these situations could result in adverse publicity, loss of revenue, higher than expected costs, delay in market acceptance or legal liabilities for claims by customers against us, all of which could harm our reputation, business, results of operations and financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Moreover, the development of new or enhanced products, services or applications may require substantial investment, and we must continue to invest a significant amount of resources in our research and development efforts to remain competitive. We do not know whether these investments will be successful. If we are unable to develop, license or acquire new or enhanced products, services and applications on a timely and cost&#8209;effective basis, or if such new or enhanced products, services and applications do not achieve adequate market acceptance, we may not be able to realize a return on our investments and our business, financial condition and results of operations may be materially and adversely affected.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may expand through acquisitions of, or investments in, other companies, each of which may divert our management&#8217;s attention, result in additional dilution to our stockholders, increase expenses, disrupt our operations and harm our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our business strategy has in the past and may, from time to time in the future, include acquiring or investing in complementary services, technologies or businesses. We may not be able to find suitable acquisition candidates, and we may not be able to complete acquisitions on favorable terms, if at all. If we do complete acquisitions, we may not ultimately strengthen our competitive position or achieve our goals, and any acquisitions we complete could be viewed negatively by users, customers or investors. If we fail to successfully integrate such acquisitions, or the technologies associated with such acquisitions, the revenue and operating results of the combined company could be adversely affected. Acquisitions may disrupt our ongoing operations, divert management from their primary responsibilities, subject us to additional liabilities, increase our expenses and adversely impact our business, financial condition, operating results and cash flows. We may not successfully evaluate or utilize the acquired technology and accurately forecast the financial impact of an acquisition transaction, including accounting charges. We have recorded significant goodwill and intangible assets in connection with our acquisitions, and in the future, if our acquisitions do not yield expected revenue, we may be required to take material impairment charges that could adversely affect our results of operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may have to pay cash, incur debt or issue equity securities to pay for any such acquisition, each of which could affect our financial condition or the value of our capital stock. The sale of equity to finance any such acquisitions could result in dilution to our stockholders. If we incur debt it would result in increased fixed obligations and could also subject us to covenants or other restrictions that would impede our ability to manage our operations. In addition, our future operating results may be impacted by performance earnouts or contingent payments. Furthermore, acquisitions may require large one-time charges and can result in increased debt, such as the borrowing under our Credit Agreement which we undertook for the 2600Hz acquisition, or contingent liabilities, adverse tax consequences, additional stock-based compensation expense and the recording and subsequent amortization or impairments of amounts related to certain purchased intangible assets or goodwill, any of which could negatively impact our future results of operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">When we enter into strategic transactions in which we acquire other companies, we cannot guarantee we will be able to successfully integrate the teams, assets, technologies or business of these target companies into our business, that we will be able to fully recover the costs of such transactions, that we will retain existing key customer and partner relationships, that we will be successful in leveraging such strategic transactions into increased business for our products, or that we will otherwise be able to achieve the intended results of the acquisitions.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We depend on several sole suppliers to provide the components for, and a small number of vendors to manufacture, certain on-premise devices and end-point devices we sell, and any delay or interruption in manufacturing, configuring and delivering by these third parties would result in delayed or reduced shipments to our customers and may increase our costs and harm our business and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We primarily contract with manufacturers in Vietnam and other Asian countries to produce our on-premise devices and end-point devices and our results of operations has been and could be further affected by slowdowns in manufacturing due to external factors such as, global conflicts and other factors.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We currently do not have long-term contracts with our contract manufacturers and they are not obligated to provide products to, or perform services for, us for any specific period, in any specific quantities or at any specific price, except as</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">32</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">may be provided in a particular purchase order. If these third parties are unable or unwilling to deliver products of acceptable quality or in a timely manner, our ability to bring services to market, the reliability of our services and our reputation could suffer. We expect that it could take several months to effectively transition to new third-party manufacturers or fulfillment agents. We may also decide to switch to or bring on additional contract manufacturers to better meet our needs. Switching to or bringing on a new contract manufacturer and commencing production is expensive and time-consuming and may cause delays in order fulfillment at our existing contract manufacturers or cause other disruptions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Additionally, several components used in our on-premise devices, end-point devices and new products such as Ooma AirDial are &#8220;single sourced&#8221; and any interruption in the suppliers of such components could cause our business and operating results to suffer as we identify alternative sources of components. For example, we have in the past experienced longer lead times in the supply of some of these components as a result of global supply chain disruptions. We are also subject to the risk of shortages (including changes in the prioritization of our orders), price increases and the risk that our suppliers may discontinue or modify components used in our products. Some product costs are subject to significantly higher pricing compared to the past due to the lingering impacts of supply chain constraints we experienced in prior fiscal years, and we may not be able to fully offset such higher costs through price increases. The occurrence of other events outside our control, such as public health crises, natural disasters or climate change, could impact our suppliers&#8217; facilities and component providers, many of which are located in Vietnam and other countries in Asia. Furthermore, the geopolitical and economic uncertainty and/or instability that may result from changes in the relationship among the United States, Taiwan and China and related tensions, may, directly or indirectly, materially harm our business, financial condition and results of operations. For example, certain of our contract manufacturers and suppliers are dependent on products sourced from Taiwan which has been distinguished in its prevalence in certain global markets. Hence, greater restrictions and/or disruptions of our contract manufacturers&#8217; suppliers&#8217; ability to operate facilities and/or do business in and with Taiwan may increase the cost of certain materials and/or limit the supply of products sourced from Taiwan and may result in deterioration of our profit margins, a potential need to increase our pricing and, in so doing, may decrease demand for our products and thereby adversely impact our revenue or profitability.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">A ransomware attack or other security breach could delay or interrupt service to our customers, compromise the integrity of our systems or data that we collect, result in the loss of our intellectual property or confidential information, harm our reputation, or subject us to significant liability.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our operations depend on our ability to protect our network from interruption or damage resulting from unauthorized access or entry, computer viruses or malware or other events beyond our control, and our ability to detect any such events. In the past, we have been subject to distributed denial-of-service ("DDOS cyberattacks"), and have been subject to other forms of attacks by hackers intent on bringing down our services or accessing confidential information. We may be subject to other DDOS and other forms of attacks in the future, undetected or otherwise. Recent developments in the threat landscape include use of AI and machine learning, as well as an increased number of cyber extortion and ransomware attacks, with higher financial ransom demand amounts and increasing sophistication and variety of ransomware techniques and methodology. For example, the industry has experienced an increase in cyber-attack activity has been observed in connection with Russia&#8217;s invasion of Ukraine. We cannot assure you that our backup systems, regular data backups, physical, technological and organizational security protocols and measures and other procedures that are currently in place, or that may be in place in the future, will be adequate to detect or prevent unauthorized access to our systems, significant damage, system interruption, degradation or failure, or data loss or to respond to a cyberattack once launched. Additionally, hackers may attempt to directly gain access to a customer's on-premise appliance, or their mobile phone, which may delay or interrupt services, or may subject our customers to further security risks, including in relation to any connected household devices a customer might have now or in the future, such as our connected smart security sensors and our partner's connected devices or to our network more generally. Also, our services are web-based, and the amount of data we store for our users on our servers has been increasing as our business has grown.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Despite our ongoing efforts to enhance security measures, our infrastructure and those of third parties we rely upon may be vulnerable to hackers, phishing, computer viruses, worms, ransomware other malicious software programs or similarly disruptive problems caused by our customers, employees, consultants or other internet users who attempt to invade public and private data networks. In some cases, we do not have in place disaster recovery facilities for certain ancillary services, such as email delivery of messages. Currently, a majority of our customers authorize us to bill their credit or debit card accounts directly for all transaction fees that we charge. We rely on encryption and authentication technology to ensure secure transmission of confidential information, including customer credit and debit card numbers. Despite our efforts to encrypt and secure transmission of confidential customer information, hackers with sufficiently sophisticated technology or methods may still be able to infiltrate our systems to gain unauthorized access to payment card information. Further, advances in computer capabilities, new discoveries in the field of cryptography or other developments may result in a compromise or breach of the technology we use to protect transaction data. In addition, because the techniques used to obtain unauthorized access to the information systems change frequently, and may not be recognized until launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">33</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Third parties may attempt to fraudulently induce employees, consultants or customers into disclosing sensitive information, such as user names, passwords, customer proprietary network information ("CPNI"), intellectual property or other information in order to gain access to our customers' data or to our data. CPNI includes information such as the phone numbers called by a customer, the frequency, duration, and timing of such calls, and any services purchased by the customer, such as call waiting, call forwarding and caller ID, in addition to other information that may appear on a customer's bill. In addition, because the techniques used to obtain unauthorized access, or to sabotage systems, change frequently and generally are not recognized until launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures. In addition, as noted above, due to political uncertainty and military actions associated with Russia&#8217;s invasion of Ukraine, we and our vendors, business partners, and contractors may also be vulnerable to heightened risks of cyber-attacks, including from or affiliated with nation-state actors, which could materially disrupt our systems and operations, supply chain, and ability to produce, sell and distribute our services and products. Any compromise or perceived compromise of our security could damage our reputation, and could subject us to significant liability, as well as regulatory action, including financial penalties, which would materially adversely affect our brand, results of operations, financial condition, business and prospects.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">See &#8220;Risks Related to Security, IT Systems and Intellectual Property&#8221; for further risks related to security breaches.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We rely significantly on retailers and reseller partnerships to sell our products&#894; our failure to effectively develop, manage and maintain these sales channels could materially and adversely affect our revenue and business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A significant portion of our Ooma Residential and Ooma Business product sales are made through a combination of direct sales and leading retailers such as Amazon, Costco.com, Best Buy and Walmart, as well as reseller partnerships. Our future success depends on our ability to effectively maintain, develop and expand our retail channel and reseller partnership sales as we seek to grow and expand our customer base. We generally do not have long-term contracts with our retailers and reseller partners, and we have in the past and may in the future experience a loss of or reduction in sales through any of these third parties, which could materially reduce our revenue and profit margins. Our competitors may in some cases be effective in causing our current and potential retailers, and reseller partners to favor their services or prevent or reduce sales of our services. If we fail to maintain or develop new relationships with retailers and reseller partners in new markets or expand the number of retailers and reseller partners in existing markets, fail to manage, train, or provide appropriate incentives to our existing retailers and reseller partners, or if they are not successful in their sales efforts, sales of our products and services may decrease and our results of operations would suffer.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our Talkatone application relies significantly on the Apple and Google app stores for distribution. Its future success depends on our continued ability to distribute Talkatone through these app stores and increase its visibility therein. If Apple or Google determine that Talkatone is non-compliant with their app store vendor policies, they may revoke our rights to sell Talkatone through their app store at any time, which could adversely affect our revenue.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We face competition in our markets and may lack sufficient financial or other resources to compete successfully. Mergers or other strategic transactions involving our competitors could adversely affect our ability to compete effectively and harm our results of operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The cloud-based communications and connected services industries are highly competitive and we expect that competition will continue to be intense in the future. Increased competition may result in pricing pressures, reduced profit margins and may impede our ability to continue to increase the sales of our services and products or cause us to lose market share, any of which could substantially harm our business and results of operations. We face continued competition from established communications providers, such as Comcast Corporation, Verizon Communications Inc., AT&amp;T Inc., Charter Communications Inc. and Rogers Communications Inc.; as well as from traditional on-premise, hardware business communications providers, mobile communications app companies providing &#8220;over-the-top&#8221; solutions, large internet companies that offer services with features that compete with some of what we offer, and certain other communications companies. These companies currently or may in the future host their solutions through the cloud.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Some of our competitors have been acquired, and may in the future consolidate with or be acquired by, other companies and competitors. Some of our competitors may enter into new alliances with each other or may establish or strengthen cooperative relationships with systems integrators, third-party consulting firms or other parties. Any such consolidation, acquisition, alliance or cooperative relationship could adversely affect our ability to compete effectively and lead to downward pricing pressure and our loss of market share, and could result in a competitor with greater financial, technical, marketing, service and other resources, all of which could harm our business, results of operations and financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Furthermore, increased competition may result in aggressive business and pricing tactics by our competitors, including: offering products similar to our platforms and solutions on a bundled basis at no charge; announcing competing products combined with extensive marketing efforts; providing financial incentives to consumers; and asserting intellectual property rights irrespective of the validity of the claims. In addition, our retail partners may offer the products and services of</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">34</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">competing companies, which would adversely affect our business. Competition from other companies may also adversely affect our negotiations with service providers and suppliers, including, in some cases, requiring us to lower our prices. We may not be able to compete successfully with the offerings and sales tactics of other companies, which could result in the loss of customers and, as a result, our revenue and profitability could be adversely affected.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The market for our CPaaS and CCaaS 2600Hz solutions is rapidly evolving, significantly fragmented and highly competitive, with relatively low barriers to entry in some segments. Our competitors in this segment of the market are primarily (i) CPaaS companies that offer communications products and applications, and (ii) other software companies that compete with portions of these and CCaaS solutions. Some of our competitors and potential competitors in this segment are larger and have greater name recognition, longer operating histories, more established customer relationships, larger budgets, lower operating costs, and significantly greater resources than we do. As a result, our competitors may be able to respond more quickly and effectively than we can to new or changing opportunities, technologies, standards, customer requirements or changing economic conditions. Our competitors may also offer products or services that address one or a limited number of functions at lower prices, with greater depth than our products or in different geographies. Our current and potential competitors may develop and market new products and services with comparable functionality to our products, and this could lead to us having to decrease prices in order to remain competitive. Additionally, in connection with our AirDial product offering, we face competition in the POTS replacement market from a range of other companies, such as Verizon Communications Inc., Granite Telecommunications LLC, MetTel Inc., AT&amp;T Inc. and Napco Securities Technologies, Inc., as well as other service providers that bundle their offerings with POTS-related products from POTS replacement equipment manufacturers, such as DataRemote Inc.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our business, operating results and financial condition also depend, in part, on our ability to establish and maintain relationships through resellers, distributors, and strategic partners. A portion of our revenue is derived from sales made by these partners and any one of them may later decide to sell their own products or those of third parties that may be competitive with our products. A loss or reduction in sales of our products through these third-party intermediaries could adversely affect our revenue and other results of operations.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">35</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may be exposed to significant risks in connection with our international operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">To date, we have not generated significant revenue from outside of the United States and Canada, but we have expanded operations outside North America to provide services in certain countries internationally. The future success of our business will depend, in part, on our ability to expand our operations and customer base worldwide. Operating in international markets requires significant resources and management attention and will subject us to regulatory, economic and political risks different from those in the United States. Because of our limited experience with international operations and developing and managing sales and distribution channels in international markets, our expansion efforts may not succeed. We face risks in doing business internationally that could materially and adversely affect our business, including:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">our ability to comply with differing and evolving technical and environmental standards, telecommunications regulations, and certification requirements outside the United States;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">our ability to comply with different and evolving laws, rules, regulations and standards relating to data privacy, data protection, data localization and data security enacted in countries in which we operate or do business;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">potential contractual and other liability to our business partners if we fail to meet their aggressive expansion schedules in new locations;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">difficulties and costs associated with staffing and managing foreign operations;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">potentially greater difficulty collecting accounts receivable and longer payment cycles;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the need to adapt and localize our services for specific countries;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the need to offer customer care in various languages;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">reliance on third parties over which we have limited control for marketing and reselling our services;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">availability of reliable broadband connectivity and wide area networks in targeted areas for expansion;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">lower levels of adoption of credit or debit card usage for internet related purchases by foreign customers and compliance with various foreign regulations related to credit or debit card processing and data privacy;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">difficulties in understanding and complying with local laws, regulations, and customs in foreign jurisdictions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">export controls and trade and economic sanctions administered by the Department of Commerce Bureau of Industry and Security and the Treasury Department&#8217;s Office of Foreign Assets Control;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">tariffs and other non-tariff barriers, such as quotas and local content rules;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">tariffs imposed by the United States on goods from other countries and tariffs imposed by other countries on U.S. goods, including the tariffs implemented and additional tariffs that have been proposed by the U.S. government on various imports from China, Canada, Mexico and the EU, and by the governments of these jurisdictions on certain U.S. goods, and any other possible tariffs that may be imposed on services such as ours, the scope and duration of which, if implemented, remain uncertain; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">compliance with various anti-bribery and anti-corruption laws such as the U.S. Foreign Corrupt Practices Act of 1977, as amended, or the FCPA;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">more limited protection for intellectual property rights in some countries;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adverse tax consequences;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">fluctuations in currency exchange rates, economic stability, and inflationary conditions which could increase the price of our services outside of the United States, increase the expenses of our international operations, including expenses related to foreign contractors, and expose us to foreign currency exchange rate risk;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">exchange control regulations, which might restrict or prohibit our conversion of other currencies into U.S. Dollars;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">restrictions on the transfer of funds;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">international conflict and sanctions, such as those resulting from Russia&#8217;s ongoing invasion of Ukraine;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">deterioration of political relations between the United States and other countries; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">political or social unrest or economic instability in a specific country or region, which could have an adverse impact on our third-party software development and quality assurance operations there.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Failure to manage any of these risks could harm our future international operations and our overall business.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">36</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">To deliver our services, we rely on third parties for our network connectivity and co&#8209;location facilities for certain features in our services and for certain elements of providing our services.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We expect that we will continue to rely on third-party service providers for hosting, internet access and other services that are vital to our service offering for the foreseeable future. For example, Equinix, Inc. and others provide data center facilities, and Inteliquent and others provide origination services. Inteliquent is also our primary provider of 911 services. We also rely on third-party service providers or are unable to provide for our SMS and speech-to-text services which are sole-sourced. If any of these network service providers stop providing or are unable to provide us with access to their infrastructure, fail to provide these services to us on a cost-effective basis, cease operations, or otherwise terminate these services, the delay caused by qualifying and switching to another third-party network service provider, if one is available, could have a material adverse effect on our business and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may be required to transfer our servers to new data center facilities if we are unable to renew our leases on acceptable terms, if at all, or the owners of the facilities decide to close their facilities, and we may incur significant costs and possible service interruption in connection with doing so. Any financial difficulties, such as bankruptcy or foreclosure, faced by our third-party data center operators or any of the service providers with which we or they contract, may have negative effects on our business, the nature and extent of which are difficult to predict. Additionally, if our data centers are unable to keep up with our increasing needs for capacity, our ability to grow our business could be materially and adversely impacted.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If problems occur with any of these third-party network or service providers for any reason, including cyberattacks, it may cause errors or reduced quality in our services, and we could encounter difficulty identifying the source of the problem. The occurrence of errors or reduced quality in our service, whether caused by our systems or a third-party network or service provider, may result in the loss of our existing customers, delay or loss of market acceptance of our services, termination of our relationships and agreements with our resellers or liability for failure to meet service level agreements, and may seriously harm our business and results of operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely on purchased or leased hardware and software licensed from third parties in order to offer our services. In some cases, we integrate third-party licensed software components into our platforms. For example, we are integrating third-party billing software into our platforms. Failure to integrate such billing platforms could result in increased expenses, errors, and delays. Third-party hardware and software, or future technology we may want to license, may not continue to provide competitive features and functionality or be available to us at reasonable prices or on commercially reasonable terms, or at all. Any loss of the right to use any of this hardware or software could significantly increase our expenses and otherwise result in delays in the provisioning of our service until equivalent technology is either developed by us, or, if available, is identified, obtained and integrated. Any errors or defects in third-party hardware or software could result in errors or a failure of our service which could harm our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We also contract with one or more third parties to provide enhanced 911, or E-911, services, including assistance in routing emergency calls and terminating E-911 calls. Our providers operate a national call center that is available 24 hours a day, seven days a week, to receive certain emergency calls and maintain public service answering point, or PSAP, databases for the purpose of deploying and operating E-911 services. On mobile devices, we generally rely on the underlying cellular or wireless carrier to provide E-911 services. Any failure to perform, including interruptions in service, by our vendors, could cause failures in our customers&#8217; access to E-911 services and expose us to significant liability and damage our reputation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Interruptions in our software or services could harm our reputation, result in significant costs to us and impair our ability to sell our services.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Because our technology platforms are complex, incorporate a variety of new computer hardware, and the platforms continue to evolve, our services may have errors, defects, bugs or other quality or reliability problems that can interfere with their intended operations or the intended operation of the systems in which our software and services are installed, or require updates that are identified after customers begin using such software or services, any of which could result in unanticipated service interruptions. Although we test our services to detect and correct errors, defects, bugs or other quality or reliability problems before shipment or their initial release and before we make updates or other changes to such software or services, we have occasionally experienced significant service interruptions as a result of undetected errors, defects, bugs or other quality or reliability problems and may experience future interruptions of service if we fail to detect and correct the same. There can be no assurance that our pre-shipment or pre-release testing programs will be adequate to detect all such quality or reliability problems. In addition, updates to our hardware and/or software due to changes in third-party service providers may be required from time to time. Furthermore, the costs incurred in correcting root causes for service outages and updating our hardware and/or software may be substantial and these and other related consequences could negatively impact our results of operations.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">37</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We currently serve the majority of our customers from data centers in Northern California, Texas and Virginia, where we lease space from Equinix, Inc. We also lease data center space in certain cities in Europe and serve some of our customers from cloud service providers. These facilities and the procedures we have implemented to restore services quickly in the event of a service outage, by themselves, will not prevent future outages. Any damage to, or failure of, these facilities, the communications network providers with whom we or they contract or with the systems by which our communications providers allocate capacity among their customers, including us, could result in interruptions in our service. Additionally, in connection with the expansion or consolidation of our existing data center facilities, we may move or transfer our data and our customers&#8217; data to other data centers. Despite precautions we take during this process, any unsuccessful data transfers may impair or cause disruptions in the delivery of our service.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Despite precautions taken at our hosting facilities, the occurrence of a natural disaster, cyberattack, or an act of terrorism or other unanticipated problems at these facilities could result in lengthy interruptions in our service. Even with the disaster recovery arrangements that we have in place, our service could be interrupted. Any errors, defects, bugs or other quality or reliability problems in, or unavailability of, the components of our platforms that cause interruptions in the intended operation of our software or services, or the intended operation of the systems in which our software or services are installed, could, among other things: cause a reduction in revenue or a delay in market acceptance of our services; require us to issue refunds to our customers or expose us to claims for damages or other legal liability; cause us to lose existing customers and make it more difficult to attract new customers; divert our development resources or require us to make extensive changes to our software, which would increase our expenses and slow innovation; increase our technical support costs; and harm our reputation and brand.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We rely on third parties, including third parties located in Russia, for some of our software development, quality assurance and operations, and anticipate we will continue to do so for the foreseeable future.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We outsource certain of our software development and design, quality assurance and operations activities to third-party contractors that have employees and consultants in a number of international locations, including Russia. Our dependence on third-party contractors creates numerous risks; in particular, international sanctions imposed as a result of the ongoing Russia-Ukraine war could limit our ability to transact with our third-party contractors in Russia, which could disrupt or delay current or future planned research and development activities, increase our costs, or force us to shift development efforts to resources in other geographies that may not possess the same level of cost efficiencies.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">More generally, there is the risk that we may not maintain control or effective management with respect to these business operations. Our agreements with these third-party contractors are either not terminable by them (other than at the end of the term or upon an uncured breach by us) or require at least 30 days&#8217; prior written notice of termination. If we experience problems with our third-party contractors, the costs charged by our third-party contractors increase, or our agreements with our third-party contractors are terminated, we may not be able to develop new solutions, enhance or operate existing solutions or provide customer support in an alternate manner that is equally or more efficient and cost-effective. If we are unsuccessful in maintaining existing and, if needed, establishing new relationships with third parties, our ability to efficiently operate existing services or develop new services and provide adequate customer support could be impaired, and as a result, our competitive position or our results of operations could suffer.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We rely on third parties to provide the majority of our customer service and support representatives. If these third parties do not provide our customers with reliable, high&#8209;quality service, our reputation and our business will be harmed, and we may be exposed to significant liability.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We offer customer support through both our online account management website and our toll-free customer support number. Our customer support is currently provided via a third-party provider located in the Philippines, as well as our U.S. employees. The ability to support our customers may be disrupted by natural disasters, inclement weather, civil unrest, strikes, terrorism, breaches of data security, and other adverse events. A significant service outage may cause a high volume of customer support inquiries, and our third&#8209;party customer service center may not be able to respond to such inquiries in a timely manner, which would adversely impact our ability to deliver on our customer commitments. We currently offer support almost exclusively in English. As we have expanded our operations internationally, we have made and will need to continue to make significant expenditures and investments in our customer service and support to adequately address the complex needs of international customers, such as support in multiple foreign languages. Industry consolidation among customer service providers may impact our ability to obtain these services or increase our costs for these services.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">38</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we fail to continue developing our brand or our reputation is harmed, our business may suffer.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We believe that continuing to strengthen our current brand will be critical to achieving widespread acceptance of our services and will require continued focus on active marketing efforts. The demand for and cost of online and traditional advertising have been increasing and may continue to increase. Accordingly, we may need to increase our investment in, and devote greater resources to, advertising, marketing, and other efforts to create and maintain brand loyalty among users. Brand promotion activities may not yield increased revenue, and even if they do, any increased revenue may not offset the expenses incurred in building our brands. If we fail to promote and maintain our brand, or if we incur substantial expense in an unsuccessful attempt to promote and maintain our brands, our business could be materially and adversely affected.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our services, as well as those of our competitors, are regularly reviewed and commented upon by online and social media sources, as well as computer and other business publications. Negative reviews, or reviews in which our competitors&#8217; products and services are rated more highly than our solutions, could negatively affect our brand and reputation. From time to time, our customers have expressed dissatisfaction with our services, including dissatisfaction with our customer support, our billing policies and the way our services operate. If we do not handle customer complaints effectively, our brand and reputation may suffer, we may lose our customers&#8217; confidence, and they may choose to terminate, reduce or not to renew their subscriptions. In addition, many of our customers participate in social media and online blogs about internet-based services, including our services, and our success depends in part on our ability to minimize negative and generate positive customer feedback through such online channels where existing and potential customers seek and share information. If actions we take or changes we make to our services do not receive a favorable reception from these customers, their blogging could negatively affect our brand and reputation. Complaints or negative publicity about our services or customer service could materially and adversely impact our ability to attract and retain customers and our business, financial condition and results of operations.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may not be able to effectively manage our growth and the increased complexity of our business, which could negatively impact our brand, financial performance and increase the risk of investing in our stock.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We continue to experience significant growth in our business, including through our expansion domestically and internationally, as well as through our acquisitions of 2600Hz in October 2023 and OnSIP in July 2022. This growth has placed and may continue to place significant demands on our management and our operational and financial infrastructure. As our operations grow in size, scope and complexity, we will need to increase our sales and marketing efforts and personnel worldwide, and improve and upgrade our systems and infrastructure to attract, service, and retain an increasing number of users.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For example, we expect the volume of simultaneous calls to increase significantly as our user base grows, and our network hardware and software may not be able to accommodate this additional simultaneous call volume. The expansion of our systems and infrastructure will require us to commit substantial financial, operational and technical resources in advance of an increase in the volume of business, with no assurance that the volume of business will increase. Any such additional capital investments will increase our cost base. Continued growth could also strain our ability to maintain reliable service levels for our users, develop and improve our operational, financial and management controls, enhance our reporting systems and procedures and recruit, train, and retain highly skilled personnel. If we fail to achieve the necessary level of efficiency in our organization as we grow, and if the current and future members of our management team do not effectively scale with this growth, our business, results of operations and financial condition could be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our business could suffer if we cannot obtain or retain direct inward dialing numbers ("DIDs"), are prohibited from obtaining local or toll-free numbers, or are limited to distributing local or toll-free numbers to only certain customers.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future success depends on our ability to procure large quantities of local and toll-free DIDs in the United States and foreign countries in desirable locations at a reasonable cost and without restrictions. Our ability to procure and distribute DIDs depends on factors outside of our control, such as applicable regulations, the practices of the communications carriers that provide DIDs, the cost of these DIDs, and the level of demand for new DIDs. Due to their limited availability, there are certain popular area code prefixes we generally cannot obtain. Our inability to acquire DIDs for our operations would make our services less attractive to potential customers in the affected local geographic areas, which could adversely affect our revenue growth. In addition, future growth in our customer base and the customer bases of our competitors will increase our dependence on needing sufficiently large quantities of DIDs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">39</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we are unable to effectively process local number and toll-free number portability provisioning in a timely manner, our growth may be negatively affected.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We support local number and toll-free number portability, which allows our customers to transfer to us and thereby retain their existing phone numbers when subscribing to our services. During the number transfer process, our new customers must maintain both our service and their existing phone service. We depend on third-party carriers to transfer phone numbers, a process we do not control, and these third-party carriers may refuse or substantially delay the transfer of these numbers to us. Local number portability is considered an important feature by many potential customers, and if we fail to reduce any related delays, we may experience increased difficulty in acquiring new customers. Moreover, the FCC requires us to comply with specified number porting timeframes when customers leave our service for the services of another provider. In Canada, the CRTC has imposed a similar number portability requirement on service providers like us. If we, or our third-party carriers, are unable to process number portability requests within the requisite timeframes, we could be subject to fines and penalties. Additionally, in the United States, both customers and carriers may seek relief from the relevant state public utility commission, the FCC, or in state or federal court for violation of local number portability requirements.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may not be able to achieve or sustain profitability in the future and our rates of growth may decline.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We have incurred net losses since our inception, including net losses of approximately $0.8 million in fiscal 2024. We have expended significant resources to develop, market, promote, grow our customer base and sell our products and solutions and we expect to continue investing for future growth. Although we generated cash from operations of $12.3 million for fiscal 2024, we cannot assure you that our operating cash flow will remain positive in the future as we continue to invest in efforts to scale our business. Achieving profitability will require us to increase revenue, manage our cost structure and avoid significant liabilities. Revenue growth and growth of our active user base may slow, revenue may decline or we may incur significant losses in the future for a number of possible reasons, including general macroeconomic conditions, increasing competition (including competitive pricing pressures), our achievement of greater market penetration, a decrease in the growth of the markets in which we compete, or failure for any reason to continue capitalizing on growth opportunities. Additionally, we may encounter unforeseen operating expenses, difficulties, complications, delays, service delivery and quality problems and other unknown factors that may result in losses in future periods. If these losses exceed our expectations or our revenue growth expectations are not met in future periods, investors&#8217; perceptions of our business may be adversely affected, our financial performance will be harmed and our stock price could be volatile or decline.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our quarterly and annual results have fluctuated in the past and may continue to do so. As a result, we may fail to meet or to exceed the expectations of analysts or investors, which could cause our stock price to fluctuate.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our quarterly and annual results of operations and cash flows, have varied historically from period to period, and we expect that they will continue to fluctuate due to a variety of factors, many of which are outside of our control, including:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">fluctuations in demand for, pricing of, or usage of, our products, including due to the effects of global macroeconomic conditions, competition, and differing levels of demand for our products based on changing customer priorities, resources, financial conditions and economic outlook;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">our ability to retain existing customers, resellers, expand our existing customers' user base, and attract new customers, sell premium solutions to our existing customers and introduce new solutions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the actions of our competitors, including pricing changes or the introduction of new solutions and products;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">our ability to effectively manage our growth and successfully penetrate the communications and connected services markets for businesses, residential and mobile;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the number of monthly, annual and multi-year subscriptions at any given time and the timing of recognition of subscription revenue;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the timing, cost and effectiveness of our advertising and marketing efforts;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the timing, operating cost and capital expenditures for the operation, maintenance, and expansion of our business;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">delays or disruptions in our supply chain;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the timing of our decisions with regard to product resource allocation;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">increased component costs;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">seasonality of consumers&#8217; purchasing patterns and seasonality of advertising patterns;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">service outages or security breaches and any related impact on our reputation;</span></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">40</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">our ability to accurately forecast revenue and appropriately plan our expenses;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">costs associated with defending and resolving intellectual property infringement and other claims;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">changes in tax laws, regulations, or accounting rules;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the timing and cost of developing or acquiring technologies, services or businesses and our ability to successfully manage any such acquisitions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">how well we execute on our strategy and operating plans and the impact of changes in our business model that could adversely impact our results of operations and financial condition;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the impact of worldwide economic, industry, and market conditions, such as liquidity constraints and higher levels of inflation; and </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">quarantines, travel limitations, or business disruptions in regions affecting our operations, including our field sales and installation services teams, or the operations of third parties upon which we rely, stemming from the actual, imminent or perceived outbreaks of epidemics or pandemics.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any one of the factors above, or the cumulative effect of some or all of the factors referred to above, may result in significant fluctuations in our quarterly and annual results of operations and cash flows. This variability and unpredictability could result in our failure to meet our internal operating plan or the expectations of securities analysts or investors for any period, which could cause our stock price to decline. In addition, a significant percentage of our operating expenses is fixed in nature and is based on forecasted revenue trends. Accordingly, in the event of revenue shortfalls, we may not be able to mitigate the negative impact on net income (loss) and margins in the short term. If we fail to meet or exceed the expectations of securities analysts or investors, the market price of our shares could fall substantially and we could face costly lawsuits, including securities class-action suits.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If additional tariffs or other restrictions are placed on our goods imported from other countries, or if the United States were to withdraw from or modify existing trade agreements or regulations, our revenue, gross margin, and results of operations may be materially harmed.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Trade restrictions, including tariffs, quotas, embargoes, safeguards and customs restrictions, could increase the cost or reduce the supply of products available to us, or could increase the lead times of certain components and equipment that we may purchase from foreign vendors, have in the past and may in the future require us to modify our supply chain organization or other current business practices, any of which could harm our business, financial condition and results of operations. For example, we now source many of our products and components from Vietnam rather than China, in part due to tariffs, and other restrictions imposed by the U.S. federal government on certain Chinese imported goods and by China in response, which negatively impacted our gross margins. If increased or additional tariffs, restrictions, quotas, embargoes, or safeguards are placed on goods imported into the United States, or any related counter-measures are taken by other countries, our revenue, gross margins, and results of operations may be materially harmed. We cannot assure you that the current U.S. administration will not impose or increase tariffs or bans on imports from foreign countries or alter trade agreements and terms between such countries and the United States, which may require us to find new sources of system assembly or other products that we import, result in higher costs, and/or disrupt our business.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We are dependent on international trade agreements and regulations, such as the United States-Mexico-Canada Agreement, or USMC. If the United States were to withdraw from or materially modify certain international trade agreements or regulations, our business and operating results could be materially and adversely affected and our customer relationships in Canada and other countries could be harmed.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">41</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we do not manage inventory levels and purchase commitments effectively, we may experience excess inventory levels, inventory obsolescence, or inventory shortages that could adversely affect our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our vendor-supplied on-premise devices and end-point devices, as well as materials and components for new products such as AirDial and enhanced versions of existing products, frequently have lead times of several months or longer for delivery and are built based on our estimates of future demand. If we overestimate our requirements, we may incur liabilities for excess or obsolete inventory, which could negatively affect our gross margins. Conversely, if we underestimate our requirements, our suppliers may have inadequate supplies of the devices or materials and components required to assemble our products, which could result in an interruption of the assembly of our products, delays in shipments or installations and deferral or loss of revenue. Our ability to accurately forecast demand is affected by many factors, including an increase or decrease in customer demand for our products and services, changes in consumer preferences and length of sales cycle, market acceptance of new product and service introductions by us and our competitors, levels of inventory held by channel partners, sales promotional activities by us or our competitors, and unanticipated changes in general market demand and macro-economic conditions. In addition, because we rely on third-party contract manufacturers and other vendors for the supply of our devices and components, our inventory levels are subject to the conditions regarding the timing of purchase orders and delivery dates not within our control.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In past periods, we have increased our inventory levels to mitigate supply disruptions caused by component shortages, longer lead times and increased transportation uncertainty. Additionally, we experienced higher unit costs for some products that have been impacted by supply chain constraints and inflationary pressure in the past global macroeconomic environment as well as certain components being subject to end-of-life. Increased inventory levels have in the past and may in the future result in write-down charges from excess or obsolete inventory, charges from excess purchase commitments, the sale of inventory at discounted prices, and other actions, which may cause our gross margin to decline and harm our reputation and brand.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Conversely, insufficient levels of inventory could interrupt the assembly of our products, delay shipments or installations and cause deferral or loss of revenue, any of which may negatively affect relations with customers. For instance, our customers rely upon our ability to meet committed delivery dates, and any disruption in the supply of our services could result in loss of customers or harm to our ability to attract new customers. Additionally, retailers may elect to return any unsold inventory without any penalty, which could result in excess inventory charges. Any of these factors could have a material adverse effect on our business, financial condition or results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may lose key members of our management team and other key employees, and may be unable to attract and retain employees we need to support our operations and growth.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">   </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future performance depends on the continued services and contributions of our senior management and other key employees to execute on our business plan, and to identify and pursue opportunities and services innovations. The loss of services of senior management or other key employees could significantly delay or prevent the achievement of our development and strategic objectives. The replacement of any of these senior management personnel would likely involve significant time and costs, and such loss could significantly delay or prevent the achievement of our business objectives. Many members of our senior management have been our employees for many years and therefore have significant experience and understanding of our business that would be difficult to replace. Our inability to attract and retain the necessary personnel could adversely affect our business, financial condition or results of business. We do not maintain key person insurance for any of our personnel.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may not be able to secure additional financing on favorable terms, or at all, to meet our future capital needs.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We intend to continue making expenditures and investments to support the growth of our business. In the future, we may require additional capital to pursue our business objectives and to respond to business opportunities, challenges, or unforeseen circumstances, including the need to develop new solutions or enhance our existing solutions, enhance our operating infrastructure, and acquire complementary businesses and technologies. Accordingly, we may decide to engage in equity or debt financings, draw down under our existing credit facility or enter into new credit facilities to secure additional funds. However, additional funds may not be available when we need them on terms acceptable to us, or at all, due to among other factors, general macro-economic conditions, including rising interest rates, volatile credit markets, inflation, and bank defaults or other disruptions in the financial services industry. Any debt financing we secure in the future could contain affirmative and negative covenants relating to our capital raising activities and other financial and operational matters, including covenants which may limit our ability to, among other things, incur additional indebtedness and liens, make certain investments, merge or consolidate with other entities and make certain dispositions, which may make it more difficult for us to obtain additional capital and to pursue business opportunities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we raise additional funds through the issuance of equity or convertible debt securities, our existing stockholders could suffer significant dilution. Any new equity securities we issue could have rights, preferences, and privileges superior to those</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">42</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">of holders of our common stock. If we are unable to obtain adequate financing or financing terms satisfactory to us, our ability to continue pursuing our business objectives and to respond to business opportunities, challenges or unforeseen circumstances could be significantly limited, and our business, results of operations, financial condition and prospects could be materially and adversely affected, and the trading price of our common stock would likely decline.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our level of indebtedness could adversely affect our financial condition.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, we had an aggregate of $8.5 million of outstanding indebtedness that will mature in 2026, all of which was incurred under our three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank, N.A., and we may incur additional indebtedness in the future. In addition, as of July 31, 2024, we had $21.5 million available for borrowing under our revolving credit facility under the Credit Agreement, and from time to time, we may request incremental term loans and/or additional revolving commitments in an aggregate principal amount of up to $20.0 million under the Credit Agreement. Our ability to pay interest and repay principal for our level of indebtedness is dependent on our ability to manage our business operations, generate sufficient cash flows to service such debt and the other factors discussed in this section. There can be no assurance that we will be able to manage any of these risks successfully.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our level of indebtedness could have important consequences, including the following:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may use a portion of our cash flow from operations to pay interest and principal on the revolving credit facility or any term loans, which will reduce funds available to us for other purposes such as working capital, capital expenditures, other general corporate purposes and potential acquisitions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our ability to refinance such indebtedness or to obtain additional financing for working capital, capital expenditures, acquisitions or general corporate purposes may be impaired;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may be exposed to fluctuations in interest rates because borrowings under our Credit Agreement bears interest at variable rates;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our leverage may be greater than that of some of our competitors, which may put us at a competitive disadvantage and reduce our flexibility in responding to current and changing industry and financial market conditions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may be more vulnerable to the current economic downturn and adverse developments in our business; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may be unable to comply with financial and other restrictive covenants in our debt agreements, which could result in an event of default that, if not cured or waived, may result in acceleration of certain of our debt and would have an adverse effect on our business and prospects and could force us into bankruptcy or liquidation.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our ability to access additional funding under our revolving credit facility will depend upon, among other things, the absence of a default under such facility, including any default arising from a failure to comply with the related covenants. If we are unable to comply with such covenants, our liquidity may be adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition, we and our subsidiaries may be able to incur substantial additional indebtedness in the future, subject to the restrictions contained in the Credit Agreement and the terms of our other indebtedness. Our ability to remain in compliance with our covenants under our debt instruments and to make future principal and interest payments in respect of our debt depends on, among other things, our operating performance, competitive developments and financial market conditions, all of which are significantly affected by financial, business, economic and other factors. We are not able to control many of these factors. Accordingly, our cash flow may not be sufficient to allow us to pay principal and interest on our debt, including the notes, and meet our other obligations.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our existing credit agreement imposes operating and financial restrictions on us.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Credit Agreement imposes various operating and financial restrictions on us, including covenants that limit our ability and the ability of certain subsidiaries to:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Incur additional debt;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Create liens on certain assets to secure debt;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Consolidate, merge, sell or otherwise dispose of all or substantially all of our assets;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Make certain investments or acquisitions or dispositions of assets; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Enter into certain sale and leaseback transactions; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Enter into certain swap agreements; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Pay dividends on or make other distributions in respect of our capital stock or make other restricted payments;</span></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">43</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Enter into certain transactions with affiliates; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Make certain material amendments to any subordinated debt agreement or our certificate of incorporation or bylaws.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition, we have agreed that we will not permit our recurring revenue or our liquidity to decrease below certain specified levels. All of these covenants may adversely affect our ability to finance our operations, meet or otherwise address our capital needs, pursue business opportunities, react to market conditions or otherwise restrict activities or business plans. A breach of any of these covenants could result in a default in respect of the related indebtedness. If a default occurs, our lender could elect to declare the indebtedness, together with accrued interest and other fees, to be immediately due and payable and, to the extent such indebtedness is secured in the future, proceed against any collateral securing that indebtedness.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our ability to make payments on and to refinance our indebtedness will depend on our ability to generate cash in the future. Our ability to generate cash will be subject to general economic, financial, competitive, legislative, regulatory and other factors, some of which are beyond our control. If prevailing interest rates or other factors at the time of refinancing result in higher interest rates upon refinancing, then the interest expense related to that refinanced indebtedness would increase. Our future cash flow, cash on hand or available borrowings may not be sufficient to meet our obligations and commitments. If we are unable to generate sufficient cash flow from operations in the future to service or repay our indebtedness and to meet our other commitments, we will be required to adopt one or more alternatives, such as refinancing or restructuring our indebtedness, selling material assets or operations or seeking to raise additional debt or equity capital. These actions may not be effected on a timely basis or on satisfactory terms or at all, or these actions may not enable us to continue to satisfy our capital requirements. In addition, the Credit Agreement contains, and any of future debt agreements may contain, restrictive covenants that may prohibit us from adopting any of these alternatives. Our failure to comply with these covenants could result in an event of default which, if not cured or waived, could result in the acceleration of all our debts.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our success depends, in part, on increased acceptance of our connected services, applications and products.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future growth depends on our ability to significantly increase revenue generated from our Ooma Business and Ooma Residential communications solutions and other connected services. The markets for cloud-based communications and other connected services are evolving rapidly and are characterized by an increasing number of market entrants. If these markets fail to develop, develop more slowly than we anticipate or develop in a manner different than we expect, our services could fail to achieve market acceptance, which in turn could materially and adversely affect our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future growth in the small and medium-sized business and enterprise markets depends on the continued use of voice communications by businesses, as compared to e-mail and other data-based methods. A decline in the overall rate of voice communications by businesses would harm our business. Furthermore, our continued growth depends on future demand for and adoption of internet voice communications systems and services and on future demand for connected communications services. Although the number of broadband subscribers worldwide has grown significantly in recent years, only a small percentage of businesses have adopted internet voice communications services to date. For demand and adoption of internet voice communications services by businesses to increase, internet voice communications networks must improve the quality of their service for real-time communications by managing the effects of and reducing packet loss, packet delay, and packet jitter, as well as unreliable bandwidth, so that high-quality service can be consistently provided. Additionally, the cost and feature benefits of internet voice communications must be sufficient to cause customers to switch from traditional phone service providers. We must devote substantial resources to educate potential customers about the benefits of internet voice communications solutions, in general, and of our services in particular. If any or all of these factors fail to occur, our business may be materially and adversely affected.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our Ooma Residential product and services are sold primarily to individuals and families. With the growth of mobile technologies, many consumers have chosen to eliminate their home telephone service as alternative services have proliferated. Our ability to continue growing our user base depends on our ability to convince customers and potential customers that our service is sufficiently useful and cost-effective, that it makes sense to maintain or establish home telephone services with us over other alternatives. Our growth could slow as it has in recent periods and our financial condition could be adversely affected if the trend of eliminating home telephone service continues or accelerates.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our mobile platform, available to any consumer with a Wi-Fi&#174; or cellular data connected mobile device, operates in a market that is fragmented and where it is difficult to gain consumer awareness. Many of our competitors in this market have been able to establish a significant user base and reputation in the market, which may make it more difficult for our products to be adopted. Furthermore, as new mobile devices are released, we may encounter difficulties supporting these devices and services, and we may need to devote significant resources to the creation, support, and maintenance of our mobile applications. Additionally, our competitors may allocate additional resources to marketing and promotion of their products, making it even more difficult to be noticed. It is also unclear how the adoption of &#8220;over-the-top&#8221; based communications will</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">44</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">continue to grow. If the number of consumers using &#8220;over-the-top&#8221; based communications stagnates or declines, such movement may result in an intensified competition for consumers in this space.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Risks Related to Security, IT Systems and Intellectual Property</span><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We have incurred, and expect to continue to incur, significant costs to protect against security breaches. We may incur significant additional costs in the future to address any actual or perceived security breaches.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any system failure or security breach that causes interruptions or data loss in our operations or in the computer systems of our customers or leads to the misappropriation of our or our customers' CPNI could result in significant liability to us. Such failure or breach could cause our service to be perceived as not being secure, subject us to regulatory requirements such as FCC notification, result in significant monetary costs, such as fines, legal fees and expenditures to improve and enhance our security measures, cause considerable harm to us and our reputation (including requiring notification to customers, regulators or the media) and deter current and potential customers from using our services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We could incur significant costs, both monetary and with respect to management's time and attention, to investigate and remediate a data security breach. Because our onboarding and billing functions are conducted primarily through a single data center, any security breach in that data center may cause an interruption in our business operations. If any of these events occurs, or is believed to occur, our reputation and brand could be damaged, our business may suffer, we could be required to expend significant capital and other resources to alleviate problems caused by such actual or perceived breaches, we could be exposed to a risk of loss, litigation or regulatory action and possible liability, and our ability to operate our business, including our ability to provide maintenance and support services to our channel partners and end-customers, may be impaired. If current or prospective channel partners and end-customers believe that our systems and solutions do not provide adequate security for their businesses' needs, our business and our financial results could be harmed. Actual, potential or anticipated attacks may cause us to incur increasing costs, including costs to deploy additional personnel and protection technologies, train employees and engage third-party experts and consultants.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Although we maintain privacy, data breach and network security liability insurance, we cannot be certain that our coverage will be adequate for liabilities actually incurred or that insurance will continue to be available to us on economically reasonable terms, or at all. In addition, although we have developed an information security program, we cannot guarantee these measures would be sufficient to protect us from a network security incident. Any actual or perceived compromise or breach of our security measures, or those of our third-party service providers, or any unauthorized access to, misuse or misappropriation of personally identifiable information, channel partners' or end-customers information, or other information, could violate applicable laws and regulations, contractual obligations or other legal obligations and cause significant legal and financial exposure, adverse publicity and a loss of confidence in our security measures, any of which could have an material adverse effect on our business, financial condition and operating results.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Failures in internet infrastructure or interference with broadband access could cause current or potential customers to believe that our systems are unreliable, leading our current customers to switch to our competitors or potential customers to avoid using our services.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Many of our services depend on our customers&#8217; broadband access to the internet, usually provided through a cable or digital subscriber line, or DSL, connection. In addition, users who access our services and applications through mobile devices, such as smartphones and tablets, must have a high-speed connection, such as Wi-Fi, 3G, 4G, 5G or LTE, to use our services and applications. Currently, this access is provided by companies that have significant and increasing market power in the broadband and internet access marketplace, including incumbent phone companies, cable companies and wireless companies. Increasing numbers of users and increasing bandwidth requirements may degrade the performance of internet and mobile infrastructure, resulting in outages or deteriorations in connectivity and negatively impacting the quality with which we can deliver our solutions. As our customer base grows and their usage of communications capacity increases, we will be required to make additional investments in network capacity to maintain adequate data transmission speeds, the availability of which may be limited, or the cost of which may be on terms unacceptable to us. If adequate capacity is not available to us as our customers&#8217; usage increases, our network may be unable to achieve or maintain sufficiently high data transmission capacity, reliability or performance. Furthermore, as the rate of adopting new technologies increases, the networks on which our services and applications rely may not be able to sufficiently adapt to the increased demand for these services, including ours. In the past, we have experienced disruptions to our service and were able to restore service without incurring material expenses. Outages to date have not materially affected our results of operations. However, the costs incurred in correcting root causes for service outages may be substantial and these and other related consequences could negatively impact our results of operations.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">45</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Some of the providers of broadband internet access and high-speed mobile access, such as AT&amp;T and Verizon, market and sell products and services to our current and potential customers that directly compete with our own offerings, which can potentially give such providers a competitive advantage. Broadband providers also may take measures that affect their customers&#8217; ability to use our service, such as degrading the quality of the data packets we transmit over their lines, giving those packets low priority, giving other packets higher priority than ours, blocking our packets entirely or attempting to charge their customers more for also using our services. A number of states have enacted or are considering legislation or executive actions that would regulate the conduct of broadband providers. We cannot predict whether state initiatives will be modified, overturned, or vacated by legal action of the court, federal or state legislation, or the FCC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC&#8217;s orders could affect the market for broadband internet access service in a way that impacts our business, for example by increasing the cost of broadband internet service and thereby depressing demand for our services, by increasing the costs of services we purchase or by creating tiers of internet access service and by either charging us for or prohibiting us from being available through these tiers, and we cannot predict the impact of these events upon our business and results of operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Frequent or persistent interruptions could cause current or potential users to believe that our systems or services are unreliable, leading them to switch to our competitors or to avoid our services, and could permanently harm our reputation and brands. Because some of our services rely on integration between features that use both wired and wireless infrastructures, any of the aforementioned problems with either wired or wireless infrastructure may result in the inability of customers to take advantage of our integrated services and therefore may decrease the attractiveness of our collective services to current and potential customers.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">46</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we experience excessive fraudulent activity or cannot meet evolving credit card association merchant standards, we could incur substantial costs and lose the right to accept credit cards for payment, which could cause our customer base to decline significantly.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A majority of our customers authorize us to bill their credit card accounts directly for service fees that we charge. If people pay for our services with stolen credit cards, we have in the past and may in the future incur substantial third-party vendor costs for which we may not be reimbursed. Further, our customers provide us with credit card billing information online or over the phone, and we do not review the physical credit cards used in these transactions, which increases our risk of exposure to fraudulent activity. We also incur charges, which we refer to as chargebacks, from the credit card companies&#8217; claims that the customer did not authorize the credit card transaction to purchase our service, something we have experienced in the past. If the number of unauthorized credit card transactions becomes excessive, we could be assessed substantial fines for excess chargebacks and we could lose the right to accept credit cards for payment. We have also been affected by the credit card breaches at various retail stores, which have caused millions of consumers to cancel credit cards as a result of the breach. We have found that some consumers do not renew their services after a card cancellation, which can have a material negative impact on our revenue. In addition, credit card issuers may change merchant standards, including data protection and documentation standards, required to utilize their services from time to time.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">While Ooma Inc. is currently in compliance with the applicable requirements of the Payment Card Industry Data Security Standard, or PCI, certain of Ooma's subsidiaries are currently not in compliance with all of the applicable technical PCI requirements. If we fail to become fully compliant or maintain compliance with current merchant standards, such as PCI, or fail to meet new standards, the credit card associations may fine us or, while unusual, may impose certain restrictions on our ability to accept credit cards or terminate our agreements with them, rendering us unable to accept credit cards as payment for our services. Our services have been in the past, and may also be in the future, subject to fraudulent or abusive usage in violation of applicable law or our acceptable use policies, including but not limited to revenue share fraud, domestic traffic pumping, subscription fraud, premium text message scams, and other fraudulent schemes, any of which could result in our incurring substantial costs for the completion of calls. Although our customers are required to set passwords and Personal Identification Numbers, or PINs, to protect their accounts and may configure in which destinations international calling is enabled from their extensions, third parties have accessed and used our customers&#8217; accounts and extensions through fraudulent means in the past, and they may do so in the future, which also could result in substantial call completion and other costs for us. In addition, third parties may have attempted in the past, and may attempt in the future, to fraudulently induce employees or consultants into disclosing customer credentials and other account information. Communications fraud can result in unauthorized access to customer accounts and data, unauthorized use of customers&#8217; services, and charges to customers for fraudulent usage and expenses we must pay to carriers. We may be required to pay for these charges and expenses with no reimbursement from the customer, and our reputation may be harmed if our services are subject to fraudulent usage.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Although we have implemented multiple fraud prevention and detection controls, we cannot assure you that these controls will be adequate to protect against fraud. Substantial losses due to fraud or our inability to accept credit card payments, which could cause our paid customer base to significantly decrease, could have a material adverse effect on our results of operations, financial condition and ability to grow our business.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Accusations of infringement of intellectual property rights could materially and adversely affect our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There has been substantial litigation in the sectors in which we operate regarding intellectual property rights. In the past, we have been sued by third parties claiming infringement of their intellectual property rights and we were able to settle such litigation. However, we remain subject to infringement lawsuits from time to time, and we cannot assure you that we will be able to settle any such claims or, if we are able to settle any such claims, that the settlement will be on favorable terms. Our broad range of technology in our business may increase the likelihood that third parties will claim that we infringe their intellectual property rights.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We have in the past received, and may in the future receive, notices of claims of infringement, misappropriation or misuse of other parties&#8217; proprietary rights. Notwithstanding their merits, accusations and lawsuits like these often require significant time and expense to defend, may negatively affect customer relationships, may divert management&#8217;s attention away from other aspects of our operations and, upon resolution, may have a material adverse effect on our business, results of operations, financial condition and cash flows.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Certain technology necessary for us to provide our services may, in fact, be patented by other parties either now or in the future. If such technology were validly patented by another person, we would have to negotiate a license for the use of that technology. We may not be able to negotiate such a license at a price that is acceptable to us or at all. The existence of such a patent, or our inability to negotiate a license for any such technology on acceptable terms, could force us to cease using the technology and cease offering products and services incorporating the technology, which could materially and</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">47</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adversely affect our business and results of operations. If we were found to be infringing on the intellectual property rights of any third party, we could be subject to liability for such infringement, which could be material. Among other negative consequences, we could also be prohibited from using or selling certain products or services, prohibited from using certain processes, or required to redesign certain products or services, each of which could have a material adverse effect on our business and results of operations.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Any failure to obtain registration or protection of our intellectual property rights could materially and adversely affect our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely, in part, on patent, trademark, copyright and trade secret law to protect our intellectual property in the United States and abroad. We cannot assure you that the particular forms of intellectual property protection we seek, including business decisions about when to file patents and when to maintain trade secrets, will be adequate to protect our business. We seek to protect our technology, software, documentation and other information under trade secret and copyright law, which afford only limited protection. For example, improper disclosure of trade secret information by our current or former employees, consultants, third-party contractors, customers or vendors to the public or others who could make use of the trade secret information would likely preclude that information from being protected as a trade secret. Furthermore, any use of AI tools to create content or code that may be incorporated into our products or services may also impact our ability to obtain or successfully defend certain intellectual property rights.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We cannot predict whether our pending patent applications will result in issued patents or whether any issued patents will effectively protect our intellectual property. Even if a pending patent application results in an issued patent, the patent may be circumvented or its validity may be challenged in various proceedings in U.S. District Court, before the U.S. Patent and Trademark Office or before their foreign equivalents, such as reexamination, which may require legal representation and involve substantial costs and diversion of management time and resources. In addition, we cannot assure you that every significant feature of our solutions is protected by our patents, or that we will mark our products with any or all patents they embody. As a result, we may be prevented from seeking damages in whole or in part for infringement of our patents.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The unlicensed use of our brand, including domain names, by third parties could harm our reputation, cause confusion among our customers and impair our ability to market our products and services. Though we have registered numerous trademarks and service marks, have applied for registration of additional trademarks and service marks and have acquired a number of domain names in and outside the United States, if our applications receive objections or are successfully opposed by third parties, it will be difficult for us to prevent third parties from using our brand without our permission. Moreover, successful opposition to our applications might encourage third parties to make additional oppositions or commence trademark infringement proceedings against us, which could be costly and time consuming to defend against. There have been in the past, and may be in the future, instances where third parties have used our trade names, or have adopted confusingly similar trade names to ours. If we are not successful in protecting our trademarks, our trademark rights may be diluted and subject to challenge or invalidation, which could materially and adversely affect our brand.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may not be able to protect or enforce our proprietary rights in the United States or internationally.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We typically enter into confidentiality and invention assignment agreements with our employees, consultants, third-party contractors (including contractors located in Russia and the Philippines), customers and vendors in an effort to control access to use and distribution of our technology, software, documentation and other information. These agreements may not effectively prevent unauthorized use or disclosure of confidential information and may not provide an adequate remedy in the event of such unauthorized use or disclosure, and it may be possible for a third party to legally reverse engineer, copy or otherwise obtain and use our technology without authorization. In addition, such agreements may not adequately protect our proprietary rights in foreign countries, where effective intellectual property protection may be unavailable or limited. Our competitors may independently develop technologies similar or superior to our technology, duplicate our technology in a manner that does not infringe our intellectual property rights or design around any of our patents. Furthermore, detecting and policing unauthorized use of our intellectual property is difficult and resource-intensive. Moreover, litigation may be necessary in the future to enforce our intellectual property rights, to determine the validity and scope of the proprietary rights of others, or to defend against claims of infringement or invalidity. Such litigation, whether successful or not, could result in substantial costs and diversion of management time and resources and could have a material adverse effect on our business, financial condition and results of operations.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">48</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Potential problems with our information systems could interfere with our business and operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely on our information systems and those of third parties for processing customer orders, distribution of our services, billing our customers, processing credit card transactions, customer relationship management, supporting financial planning and analysis, accounting functions and financial statement preparation and otherwise running our business. Information systems may experience interruptions, including interruptions of related services from third-party providers, which may be beyond our control. Such business interruptions could cause us to fail to meet customer requirements. All information systems, both internal and external, are potentially vulnerable to damage or interruption from a variety of sources, including without limitation, computer viruses, ransomware attacks or other security breaches, energy blackouts, natural disasters, terrorism, war, telecommunication failures, and employee or other theft, as well as third-party provider failures. Any disruption in our information systems and those of the third parties upon which we rely could have a significant impact on our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may implement enhanced information systems in the future to meet the demands resulting from our growth and to provide additional capabilities and functionality. The implementation of new systems could come with its own set of cybersecurity risks. The implementation of new systems and enhancements to existing systems is frequently disruptive to the underlying business of an enterprise, and can be time-consuming and expensive, increase management responsibilities and divert management attention. Any disruptions relating to our systems enhancements or any problems with the implementation, particularly any disruptions impacting our operations or our ability to accurately report our financial performance on a timely basis during the implementation period, could materially and adversely affect our business. Even if we do not encounter these material and adverse effects, the implementation of these enhancements may be much costlier than we anticipated. If we are unable to successfully implement the information systems enhancements as planned, our financial position, results of operations and cash flows could be negatively impacted.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our use of open source technology could impose limitations on our ability to commercialize our services.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We use open source software in our platforms on which our services operate. There is a risk that the owners of the copyrights in such software may claim that such licenses impose unanticipated conditions or restrictions on our ability to market or provide our services. If such owners prevail in such claim, we could be required to make the source code for our proprietary software (which contains our valuable trade secrets) generally available to third parties, including competitors, at no cost, to seek licenses from third parties in order to continue offering our services, to re-engineer our technology, or to discontinue offering our services in the event re-engineering cannot be accomplished on a timely basis or at all, any of which could cause us to discontinue our services, harm our reputation, result in customer losses or claims, increase our costs or otherwise materially and adversely affect our business and results of operations. If a copyright holder of such open source software were to allege we had not complied with the conditions of one or more of these licenses, we could be required to incur significant legal expenses defending against such allegations and could be subject to significant damages, enjoined from the sale of our solutions that contained the open source software and required to comply with the foregoing conditions, which could disrupt the distribution and sale of some of our solutions.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Regulatory and Tax Matters</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our services are subject to regulation and future legislative or regulatory actions could adversely affect our business and expose us to liability.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Federal Regulation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> Our business is regulated by the FCC. As a communication services provider, we are subject to FCC regulations relating to privacy, disability access, law enforcement access, porting of numbers, revenue reporting, Federal USF contributions and other regulatory assessments, E&#8209;911, robocall mitigation, and other matters. If we do not comply with FCC rules and regulations, we could be subject to FCC enforcement actions, substantial fines, loss of licenses, repayment of funds, potential private right of actions and possibly restrictions on our ability to operate or offer certain of our services. Any enforcement action by the FCC, which may include a public process, would hurt our reputation in the industry, possibly impair our ability to sell our services to customers and could have a materially adverse impact on our revenue.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">State Regulation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> We are also subject to state consumer protection laws, as well as U.S. state, municipal and local sales, use, excise, utility user and ad valorem taxes, fees or surcharges. The imposition of such regulatory obligations or the imposition of additional taxes on our services could increase our cost of doing business and limit our growth.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">International Regulation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our international operations subject us to telecommunications, consumer protection, data privacy and other laws and regulations in the foreign countries where we offer our services. Our international operations are potentially subject to country-specific governmental regulation and related actions that may increase our costs and prevent us from offering or providing our products and services in certain countries. Certain of our services may be used by customers located in countries where VoIP and other forms of IP communications may be illegal or require special licensing. In countries where local laws and regulations prohibit (or come to prohibit) the use of our products, users may continue to</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">49</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">use our products and services, which could subject us to costly penalties or governmental action adverse to our business and damaging to our brand and reputation, our international expansion efforts, or our business and operating results.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">The adoption of additional 911 requirements by the FCC could increase our costs that could make our service more expensive, decrease our profit margins, or both.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We may not be able to comply with additional 911 requirements adopted by the FCC for interconnected VoIP providers, providers of enterprise telephone services, non-interconnected VoIP providers and texting providers. For example, beginning January 6, 2022, providers of non-fixed interconnected VoIP services were required to supply automated dispatchable location, if technically feasible, or either registered location information obtained by the customer or alternative location information. At present, we have no means to automatically identify the physical location of our customers. Our obligation to comply with the FCC&#8217;s VoIP E-911 order and related costs puts us at a competitive disadvantage to VoIP service providers who are either not subject to the requirements or have chosen not to comply with the FCC&#8217;s mandates. We cannot guarantee emergency calling service consistent with the VoIP E-911 order will be available to all of our customers, especially those accessing our services on a mobile device or from outside of the United States. The FCC&#8217;s current E-911 requirements and changes to those requirements, including their impact on our customers due to service price increases or other factors, could have a material adverse effect on our business, financial condition or operating results. In addition, customers may attempt to hold us responsible for any loss, damage, personal injury, or death suffered as a result of delayed, misrouted, or uncompleted emergency service calls or text messages, subject to any limitations on a provider's liability provided by applicable laws, regulations, and our customer agreements.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we cannot comply with the FCC's rules imposing call signaling requirements on VoIP providers, we may be subject to fines, cease and desist orders, or other penalties.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC&#8217;s rules regarding the system of compensation for various types of traffic require, among other things, interconnected VoIP providers who originate interstate or intrastate traffic destined for the PSTN, to transmit the telephone number associated with the calling party to the next provider in the call path. Intermediate providers must pass unaltered calling party number or charge number signaling information they receive from other providers to subsequent providers in the call path. In addition, effective June 30, 2021, voice service providers in the United States were required to either fully implement &#8220;STIR/SHAKEN&#8221; technology on their entire networks or implement a robocall mitigation program on those portions of their networks that are not STIR/SHAKEN-enabled. Canada is also currently in the process of implementing STIR/SHAKEN requirements. Although we have implemented STIR/SHAKEN in the United States and are in the process of implementing STIR/SHAKEN in Canada, to the extent that we inadvertently pass traffic that does not have appropriate calling party number or charge number information, we could be subject to fines, cease and desist orders, or other penalties. Similarly, to the extent that we cannot authenticate our customers, their traffic may be more likely to be blocked or adversely labeled. Additionally, as a VoIP provider, we rely on the FCC to design rules that do not disadvantage our service relative to those of incumbent local exchange carriers and competitive local exchange carriers. Should the FCC decide to do so, it could result in an inferior user experience for Ooma&#8217;s service, which may negatively impact our business.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may not be able to comply with FCC rules governing completion of calls to rural areas and related reporting requirements.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC&#8217;s rules governing the completion of calls to rural areas and related reporting requirements require us, among other things, to monitor the performance of our intermediate providers &#8211; telecom companies we use to help complete telephone calls to rural areas and take steps to prevent rural call completion problems that may be caused by our intermediate providers, such as persistent low answer or completion rates, unexplained anomalies in performance, or repeated complaints to the FCC. Under certain circumstances, if our routing choices, meaning the intermediate providers we chose to help us complete calls to rural areas, result in lower quality service, we may be held liable for the actions taken by our intermediate providers. If we cannot comply with these rules, we could be subject to investigation and enforcement action and could be exposed to substantial liability. The FCC also has increased enforcement activity related to completion of calls to rural customers, and we could be subject to substantial fines and to conduct requirements that could increase our costs if we are the subject of an enforcement proceeding and cannot demonstrate calls from our customers to rural customers are completed at a satisfactory rate.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Failure to comply with communications and telemarketing laws could result in significant fines or place significant restrictions on our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We rely on a variety of marketing techniques in connection with our sales efforts, including telemarketing and email marketing campaigns. We also record certain telephone calls between our customers or potential customers and our sales and service representatives for training and quality assurance purposes. These activities are subject to a variety of state and federal laws such as the Telephone Consumer Protection Act of 1991 (also known as the Federal Do-Not-Call law, or the TCPA), the Telemarketing Sales Rule, the Controlling the Assault of Non-Solicited Pornography and Marketing Act of</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">50</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">2003 (also known as the CAN-SPAM Act) and various U.S. state laws regarding telemarketing and telephone call recording. The FCC continues to adopt and consider additional rules related to robocalling, robotexting, and autodialing. For example, in December 2023, the FCC adopted a one-to-one consent rule requiring companies to obtain consent from consumers to receive automated or robotic calls or texts only from one specific good or service provider at a time. These laws are subject to varying interpretations by courts and governmental authorities and often require subjective interpretation, making it difficult to predict their application and therefore making our compliance efforts more challenging. We cannot be certain our efforts to comply with these laws, rules and regulations will be successful, or, if they are successful, that the cost of such compliance will not be material to our business. Changes to these or similar laws, or to their application or interpretation, or new laws, rules and regulations governing our communication and marketing activities could adversely affect our business. In the event that any of these laws, rules or regulations significantly restrict our business, we may not be able to develop adequate alternative communication and marketing strategies. Further, non-compliance with these laws, rules and regulations carries significant financial penalties and the risk of class action litigation, which would adversely affect our financial performance and significantly harm our reputation and our business.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">The FCC has continued to increase regulation of interconnected VoIP services and may at any time determine certain VoIP services are telecommunications services subject to traditional common carrier regulation.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC is considering, in various proceedings, issues arising from the transition from traditional copper networks to IP networks. The FCC is also considering whether interconnected VoIP services should be treated as telecommunications services, which could subject interconnected VoIP services to additional common carrier regulation. The FCC&#8217;s efforts may result in additional regulation of IP network and service providers, which may negatively affect our business.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">51</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Reform of federal and state Universal Service Fund ("USF") programs could increase the cost of our service to our customers, diminishing or eliminating our pricing advantage.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The FCC and a number of states are considering modifications to USF programs, including the manner in which companies, like us, contribute to the federal USF program, and whether certain non-interconnected VoIP providers and broadband providers, among others, should contribute to the USF. If the FCC or certain states modify contribution obligations that continue to increase our contribution burden, we will either need to absorb the increased costs or raise the amount we currently collect from some of our customers to cover these obligations, which would either reduce our profit margins or diminish our price advantage. A number of states require us to contribute funds to state USF programs, while others are actively considering extending their programs to include the services we provide. We currently charge our customers certain fees and other surcharges, which may result in our services becoming less competitive as compared to those provided by others. If our pricing advantage is diminished or eliminated, or if we are required to absorb these increased costs and not pass-through to our customers, our results of operations would be negatively impacted.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our products must comply with industry standards, FCC regulations, state, local, country&#8209;specific and international regulations, and changes may require us to modify existing products and/or services.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition to reliability and quality standards, the market acceptance of telephony over broadband IP networks is dependent upon the adoption of industry standards so that products from multiple manufacturers are able to communicate with each other. Our unique hybrid SaaS connectivity platforms rely on communication standards such as SIP, SRTP and network standards such as TCP/IP and UDP to interoperate with other vendors&#8217; equipment. There is currently a lack of agreement among industry leaders about which standard should be used for a particular application and about the definition of the standards themselves. We also must comply with certain rules and regulations of the FCC regarding electromagnetic radiation and safety standards established by Underwriters Laboratories (&#8220;UL&#8221;), as well as similar regulations and standards applicable in other countries. In addition, the market acceptance of POTS replacement products such as Ooma AirDial will depend on compliance with industry standards such as National Fire Protection Association NFPA 72, UL 864 and American Society of Mechanical Engineers ASME A17.1B. As standards evolve, we may be required to modify our existing products or develop and support new versions of our products. We must comply with certain federal, state and local requirements regarding how we interact with our customers, including marketing practices, consumer protection, privacy, and billing issues, the provision of 9-1-1 emergency service and the quality of service we provide to our customers. The failure of our products and services to comply, or delays in compliance, with various existing and evolving standards could delay or interrupt volume production of our VoIP telephony products, subject us to fines or other imposed penalties, or harm the perception and adoption rates of our service, any of which would have a material adverse effect on our business, financial condition or operating results.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We process, store, and use personal information and other data, which subjects us and our customers to a variety of evolving industry standards, contractual obligations and other legal rules related to privacy, which may increase our costs, decrease adoption and use of our products and services, and expose us to liability.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There are numerous U.S. federal, state and local, and foreign laws and regulations, as well as contractual obligations and industry standards, that provide for certain obligations and restrictions with respect to data privacy and security, and the collection, storage, retention, protection, use, processing, transmission, sharing, disclosure, and protection (&#8220;Processing&#8221;) of personal information and other customer data. The scope of these obligations and restrictions is changing, subject to differing interpretations, and may be inconsistent among jurisdictions or conflict with other rules, and their status remains uncertain.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In the United States and in other jurisdictions, a variety of regulations are currently being proposed that would increase restrictions on online service providers in the field of data privacy and security, and we believe that the adoption of such increasingly restrictive regulation is likely. For example, the California Consumer Privacy Act (the &#8220;CCPA&#8221;) regulates the processing of personal data, which could result in civil penalties for violations. In addition, the California Privacy Rights Act (&#8220;CPRA&#8221;) took effect on January 1, 2023 and an increasing number of states are adopting similar privacy laws. We will continue to monitor developments related to new privacy laws like the CPRA which will require us to incur additional costs and expenses in an effort to monitor and comply with such laws.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In Canada, penalties for non-compliance with certain Canadian anti-spam legislation are considerable, including administrative monetary penalties of up to $10 million and a private right of action.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">52</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The EU has implemented strict laws that apply in connection with the Processing of personal information, and other customer data. Data protection regulators within the EU and other jurisdictions have the power to fine non-compliant organizations significant amounts and seek injunctive relief, including the cessation of certain data processing activities. For example, the EU&#8217;s General Data Protection Regulation, or GDPR, provides for significant penalties for violations, including fines of up to 4% of the violating company&#8217;s worldwide revenue. While the United Kingdom&#8217;s Data Protection Act substantially implements the GDPR, the United Kingdom&#8217;s exit from the European Union has created regulatory uncertainty, including the cross-border transfer of data. Such uncertainty may adversely impact the operations of our U.K. subsidiary by adding operational complexities and expenses. In addition, there is uncertainty about data transfer to the United States. For example, although the new U.S. Data Privacy Framework was formally approved by the European Commission in July 2023, the framework may still be invalidated by the Court of Justice of the European Union, which invalidated the framework's predecessor, the Privacy Shield Program, in 2020.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We have taken administrative, contractual and other measures designed to achieve compliance with applicable privacy laws and standards, but we cannot guarantee these measures are sufficient. Obligations and restrictions imposed by current and future applicable laws, regulations, contracts and industry standards, in particular as we continue to expand our international operations, may increase the cost of our operations, affect our ability to provide all the current features of our business, residential and mobile products and services and our customers&#8217; ability to use our products and services, and could require us to modify the features and functionality of our products and services. Such obligations and restrictions may limit our ability to Process data, and to allow our customers to Process data with others through our products and services. Failure to comply with such obligations could subject us to lawsuits, fines, criminal penalties, statutory damages, consent decrees, injunctions, adverse publicity and other losses that could harm our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our customers may use our services to transmit and store protected health information, or PHI, that is protected under HIPAA. Noncompliance with laws and regulations relating to privacy such as HIPAA may lead to significant fines, penalties or liabilities. Our actual compliance, our customers&#8217; perception of our compliance, costs of compliance with such regulations and customer concerns regarding their own compliance obligations (whether factual or in error) may limit the use and adoption of our service and reduce overall demand. Furthermore, privacy concerns, including the inability or impracticality of providing advance notice to customers of privacy issues related to the use of our services, may cause our customers&#8217; customers to resist providing the personal data necessary to allow our customers to use our services effectively. Even the perception of privacy concerns, whether or not valid, may inhibit market adoption of our service in certain industries.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition to government activity, privacy advocacy groups and industry groups have adopted and are considering the adoption of various self-regulatory standards and codes of conduct that may place additional burdens on us and our customers, which may further reduce demand for our services and harm our business. Our employees and personnel may also use generative AI technologies to perform their work, and the disclosure and use of personal information in such technologies is subject to various data privacy and security laws and obligations. Governments have passed and are likely to pass additional laws regulating generative AI. Our use of this technology could result in additional compliance costs and regulatory investigations and actions. If we are unable to use generative AI, it could make our business less efficient and result in competitive disadvantages.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any failure by us to protect our users&#8217; privacy and data, including as a result of our systems being compromised by hacking or other malicious activity, could result in a loss of user confidence in our services and ultimately in a loss of users, which could materially and adversely affect our business. Our customers may also accidentally disclose their passwords, store them on a mobile device that is lost or stolen, or otherwise fall prey to attacks outside our system, creating the perception that our systems are not secure against third-party access. If our third-party contractors or vendors violate applicable laws or our policies, such violations may also put our customers&#8217; information at risk and could in turn have a material and adverse effect on our business.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Use or delivery of our services may become subject to new or increased regulatory requirements, taxes or fees.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The increasing growth and popularity of internet voice communications heighten the risk that governments will regulate or impose new or increased fees or taxes on internet voice communications services. To the extent the use of our services continues to grow, regulators may be more likely to seek to regulate or impose new or additional taxes, surcharges or fees on our services. Similarly, advances in technology, such as improvements in locating the geographic origin of internet voice communications, could cause our services to become subject to additional regulations, fees or taxes, or could require us to invest in or develop new technologies, which may be costly. In addition, as we continue to expand our user base and offer more services, we may become subject to new regulations, taxes, surcharges or fees. Increased regulatory requirements, taxes, surcharges or fees on internet voice communications services, which could be assessed by governments retroactively or prospectively, would substantially increase our costs, and, as a result, our business would suffer. In addition, the tax status of our services could subject us to conflicting taxation requirements and complexity with regard to the collection and remittance of applicable taxes. Any such additional taxes could harm our results of operations.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">53</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We are subject to anti-corruption and anti-money laundering laws with respect to our operations and non-compliance with such laws can subject us to criminal and/or civil liability and harm our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We are subject to the FCPA, the U.S. domestic bribery statute contained in 18 U.S.C. &#167; 201, the U.S. Travel Act, the USA PATRIOT Act, and other anti-bribery and anti&#8209;money laundering laws in countries in which we conduct activities. Anti-corruption laws are interpreted broadly and prohibit companies and their employees and third-party intermediaries from authorizing, offering, or providing, directly or indirectly, improper payments or benefits to recipients in the public or private sector. We use third-party representatives for product testing, customs, export, and import matters outside of the United States. As we increase our international sales and business, we may engage with business partners and third-party intermediaries to sell our products and services. We or our third-party intermediaries may have direct or indirect interactions with officials and employees of government agencies or state-owned or affiliated entities. We can be held liable for the corrupt or other illegal activities of these third-party intermediaries, our employees, representatives, contractors, partners, and agents, even if we do not explicitly authorize such activities.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">While we devote resources to our U.S. and international compliance programs and have implemented policies, training, and internal controls designed to reduce the risk of corrupt payments, such as controls over expenditures for foreign contractors, and collusive activity, our employees, partners, vendors, or agents may violate our policies. Noncompliance with anti-corruption and anti-money laundering laws could subject us to whistleblower complaints, investigations, sanctions, settlements, prosecution, other enforcement actions, disgorgement of profits, significant fines, damages, other civil and criminal penalties or injunctions, suspension and/or debarment from contracting with certain persons, the loss of export privileges, reputational harm, adverse media coverage, and other collateral consequences. If any subpoenas or investigations are launched, or governmental or other sanctions are imposed, or if we do not prevail in any possible civil or criminal litigation, our business, results of operations and financial condition could be materially harmed. In addition, responding to any action will likely result in a materially significant diversion of management&#8217;s attention and resources, significant defense costs and other professional fees. Enforcement actions and sanctions could further harm our business, results of operations, and financial condition.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We are subject to governmental sanctions and export and import controls, economic embargoes and trade sanctions that could impair our ability to expand our business to, and compete in, international markets and could subject us to liability if we are not in compliance with applicable laws.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our products and services are subject to export and import laws and regulations, including the U.S. Export Administration Regulations, U.S. Customs regulations, and various economic and trade sanctions regulations administered by the U.S. Treasury Department&#8217;s Office of Foreign Assets Controls. U.S. export control laws and economic sanctions programs generally prohibit the export of certain products and services to countries, governments and persons subject to U.S. economic embargoes and trade sanctions unless a license, approval, or other authorization is obtained from the U.S. Government. Obtaining the necessary authorizations and licenses for a particular sale may be time-consuming, is not guaranteed and may result in the delay or loss of sales opportunities. If we fail to comply with these laws and regulations, we and certain of our employees could be subject to substantial civil or criminal penalties, including the possible loss of export or import privileges, government investigations, reputational harm, fines which may be imposed on us and responsible employees or managers, and, in extreme cases, the incarceration of responsible employees or managers.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition, any changes in our products or services, or changes in applicable export, import, embargo and trade sanctions regulations, may create delays in the introduction and sale of our products and services in international markets or, in some cases, prevent the export or import of our products and services to certain countries, governments, or persons altogether. Any change in export, import, embargo, or trade sanctions regulations, shift in the enforcement or scope of existing regulations, or change in the countries, governments, persons or technologies targeted by such regulations, could also result in decreased use of our products and services, or in our decreased ability to export or sell our products and services to existing or potential customers with international operations. Any decreased use of our products and services or limitation on our ability to export or sell our products and services would likely adversely affect our business.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">54</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may be subject to liabilities on past services for taxes, surcharges and fees.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We collect and remit state or municipal sales, use, excise, utility user and ad valorem taxes, fees, or surcharges on the charges to our customers for our services or goods in only those jurisdictions where we believe we have a legal obligation to do so or for business reasons to reduce risk. In addition, we have historically substantially complied with the collection of certain California sales/use taxes and financial contributions to the California 9-1-1 system (the Emergency Telephone Users Surcharge) and federal USF. With limited exception, we believe we are generally not subject to taxes, fees, or surcharges imposed by other state and municipal jurisdictions or that such taxes, fees, or surcharges do not apply to our services. There is uncertainty as to what constitutes sufficient &#8220;in state presence&#8221; for a state or local municipality to levy taxes, fees and surcharges for sales made over the internet. Taxing authorities have in the past, and likely will in the future, challenge our position on the lack of enforceability of such taxes, fees and surcharges where we have no relevant presence, and audit our business and operations with respect to sales, use, telecommunications and other taxes, which could result in increased tax liabilities for us or our customers, which could materially and adversely affect our results of operations and our relationships with our customers. Finally, the application of other indirect taxes (such as sales and use tax, value added tax, or VAT, goods and services tax, business tax, and gross receipt tax) to e-commerce businesses, such as ours, is a complex and evolving area. The application of existing, new, or future laws, whether in the United States or internationally, could have adverse effects on our business, prospects, and results of operations. There have been, and will continue to be, substantial ongoing costs associated with complying with the various indirect tax requirements in the numerous markets in which we conduct or will conduct business.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Changes in effective tax rates, or adverse outcomes resulting from examination of our income or other tax returns, could adversely affect our results of operations and financial condition.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future effective tax rates could be subject to volatility or adversely affected by a number of factors, including:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">changes in the valuation of our deferred tax assets and liabilities;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">expiration of, or lapses in, the research and development tax credit laws;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">expiration or non-utilization of net operating loss carryforwards;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">tax effects of share-based compensation;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">certain non-deductible expenses as a result of acquisitions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">expansion into new jurisdictions;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">potential challenges to and costs related to implementation and ongoing operation of our intercompany arrangements; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">changes in tax laws and regulations and accounting principles, or interpretations or applications thereof. </span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our international operations are subject to U.S. tax laws, including limitations on the ability to defer U.S. taxation on earnings outside of the United States until those earnings are repatriated to the United States could affect the tax treatment of our foreign earnings. Any changes in our effective tax rate could adversely affect our results of operations.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We may be unable to use some or all of our net operating loss carryforwards, which could materially and adversely affect our reported financial condition and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of January 31, 2024, we had federal net operating loss carryforwards of approximately $47.7 million available to offset future income, of which approximately $5.8 million will expire in various amounts beginning in fiscal 2038, if not utilized, and the remainder may be carried forward indefinitely. We also had state net operating loss carryforwards of $70.7 million which will expire in various amounts beginning in fiscal 2025. Additionally, we have federal and research and development tax credit carryforwards that will begin to expire in fiscal 2030 and California research and development tax credit carryforwards with no expiration date. Realization of these net operating loss and research tax credit carryforwards depends on future income, and there is a risk that our existing carryforwards could expire unused and be unavailable to offset future income tax liabilities, which could materially and adversely affect our results of operations. No deferred tax assets have been recognized on our balance sheet related to these NOLs, as they are fully reserved by a valuation allowance. If we have previously had, or have in the future, one or more Section 382 &#8220;ownership changes&#8221;, or if we do not generate sufficient taxable income, we may not be able to utilize a material portion of our NOLs, even if we achieve profitability. If we are limited in our ability to use our NOLs in future years in which we have taxable income, we will pay more taxes than if we were able to fully utilize our NOLs. This could materially and adversely affect our results of operations.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">55</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Risks Related to Being a Public Company</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we fail to maintain an effective system of internal control over financial reporting, we may not be able to accurately report our financial results in a timely manner, which may adversely affect investor confidence in our company and, as a result, the value of our common stock.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Pursuant to Section 404 of the Sarbanes-Oxley Act, we are required to make a formal assessment and provide an annual management report on the effectiveness of our internal control over financial reporting. We expect that the requirements of these rules and regulations will continue to increase our compliance costs, make some activities more difficult, time-consuming and costly, and place significant demands on our financial and operational resources, as well as IT systems. Our control environment may not be sufficient to remediate or prevent future material weaknesses or significant deficiencies from occurring. A control system, no matter how well designed and operated, can provide only reasonable assurance that the control system&#8217;s objectives will be met. Due to the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that misstatements due to error or fraud will not occur or that all control issues and all instances of fraud will be detected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our independent registered public accounting firm is required to and has issued an attestation report on the effectiveness of our internal control over financial reporting as of January 31, 2024. If we are unable to conclude that our internal control over financial reporting is effective, or if our independent registered public accounting firm is unable to express an opinion as to the effectiveness of our internal control over financial reporting, investors could lose confidence in the accuracy and reliability of our financial reports, which would cause the price of our common stock to decline, and we could be subject to sanctions or investigations by regulatory authorities, including the SEC and the NYSE.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our actual operating results may differ significantly from our guidance.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">From time to time, we plan to release earnings guidance in our quarterly earnings conference calls, quarterly earnings releases, or otherwise, regarding our future performance that represents our management&#8217;s estimates as of the date of release. This guidance, which will include forward&#8209;looking statements, will be based on projections prepared by our management. Projections are based upon a number of assumptions and estimates that, while presented with numerical specificity, are inherently subject to significant business, economic and competitive uncertainties and contingencies, many of which are beyond our control and are based upon specific assumptions with respect to future business decisions, some of which will change. We intend to state possible outcomes as high and low ranges which are intended to provide a sensitivity analysis as variables are changed but are not intended to imply that actual results could not fall outside of the suggested ranges. The principal reason that we release guidance is to provide a basis for our management to discuss our business outlook with analysts and investors. Accordingly, we do not accept any responsibility for any projections or reports published by any such third parties.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Guidance is necessarily speculative in nature, and it can be expected that some or all of the assumptions underlying the guidance furnished by us will not materialize or will vary significantly from actual results. Accordingly, our guidance is only an estimate of what management believes is realizable as of the date of release. Actual results may vary from our guidance and the variations may be material. In light of the foregoing, investors are urged not to rely upon our guidance in making an investment decision regarding our common stock.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any failure to successfully implement our operating strategy or the occurrence of any of the events or circumstances set forth in this &#8220;Risk Factors&#8221; section in this report could result in the actual operating results being different from our guidance, and the differences may be adverse and material.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">56</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">Risks Related to Ownership of Our Common Stock</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our stock price has been and may continue to be volatile, or may fluctuate or decline, resulting in a substantial loss of your investment.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our stock price may fluctuate in response to a number of events and factors, such as quarterly operating results; changes in our financial projections provided to the public or our failure to meet those projections; our operating and financial performance and prospects and the performance of other similar companies; the public's reaction to our press releases, other public announcements and filings with the SEC; significant transactions, or new features, products or services by us or our competitors; changes in financial estimates and recommendations by securities analysts; failure of securities analysts to cover or track our common stock; media coverage of our business and financial performance; trends in our industry; any significant change in our management; sales of common stock by us, our investors or members of our management team; and changes in general market, economic and political conditions in the United States and global economies or financial markets, including as a result of public health crises and global conflicts, such Russia&#8217;s ongoing invasion of Ukraine.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The market price of our common stock could be subject to wide fluctuations in response to, among other things, the factors described in this &#8220;Risk Factors&#8221; section or otherwise, and other factors beyond our control, such as fluctuations in the valuations of companies perceived by investors to be comparable to us. In addition, the stock market in general, and the market prices for companies in our industry, have experienced volatility that often has been unrelated to operating performance. These broad market and industry fluctuations may adversely affect the price of our stock, regardless of our operating performance. In the past, many companies that have experienced volatility in their stock price have become subject to securities class action litigation. We have been subject to this type of litigation in the past and may continue to be a target in the future. Securities litigation against us has resulted and could result in substantial costs and has and would divert our management&#8217;s attention from other business concerns, any of which could harm our business.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">If we fail to meet expectations related to future growth, profitability, or other market expectations, our stock price may decline significantly, which could have a material adverse impact on investor confidence and employee retention.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Sales of a substantial number of shares of our common stock in the public market, or the perception these sales might occur, could cause our stock price to decline.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Sales of a substantial number of shares of our common stock in the public market, or the perception these sales might occur, could cause the market price of our common stock to decline and could impair our ability to raise capital through the sale of additional equity securities. In addition, we have registered shares of common stock which we may issue under our employee stock plans and they may be sold freely in the public market upon issuance. We may issue our shares of common stock or securities convertible into our common stock from time to time in connection with a financing, acquisition, and investments or otherwise. Any such issuance could result in substantial dilution to our existing stockholders and cause the trading price of our common stock to decline.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If securities analysts do not publish or cease publishing research or reports about our business or if they publish negative evaluations of our stock, the price of our stock could decline.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We expect that the trading price for our common stock will be affected by any research or reports that industry or financial analysts publish about us or our business. If one or more of the analysts who elect to cover us downgrade their evaluations of our stock or provide more favorable relative recommendations about our competitors, the price of our stock could decline. If one or more of these analysts cease coverage of our company, our stock may lose visibility in the market, which in turn could cause its price to decline.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We have never paid cash dividends and do not anticipate paying any cash dividends on our common stock.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">We do not anticipate paying any cash dividends on our common stock in the foreseeable future. If we do not pay cash dividends, you would receive a return on your investment in our common stock only if the market price of our common stock increases before you sell your shares.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">57</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our charter documents and Delaware law could prevent a takeover that stockholders consider favorable and could also reduce the market price of our stock.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our Amended and Restated Certificate of Incorporation and our Amended and Restated Bylaws contain provisions that could delay or prevent a change in control of our company. These provisions could also make it more difficult for stockholders to elect directors and take other corporate actions. These provisions include:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">providing for a classified board of directors with staggered, three-year terms;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">authorizing the issuance of &#8220;blank check&#8221; preferred stock that our board of directors could issue to increase the number of outstanding shares to discourage a takeover attempt;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">prohibiting cumulative voting in the election of directors;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">providing that vacancies on our board of directors may be filled only by a majority of directors then in office, even though less than a quorum;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">prohibiting stockholder action by written consent;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">limiting the persons who may call special meetings of stockholders; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">requiring advance notification of stockholder nominations and proposals.</span></div></div>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">These provisions may 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, which is responsible for appointing the members of our management. In addition, the provisions of Section 203 of the Delaware General Corporate Law may prohibit large stockholders, in particular those owning 15% or more of our outstanding voting stock, from merging or combining with us for a certain period of time without the consent of our board of directors. These and other provisions in our amended and restated certificate of incorporation and our bylaws and under Delaware law could discourage potential takeover attempts, reduce the price investors might be willing to pay in the future for shares of our common stock and result in the market price of our common stock being lower than it would be without these provisions.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Our amended and restated certificate of incorporation provides that the Court of Chancery of the State of Delaware will be the exclusive forum for substantially all disputes between us and our stockholders, which could limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us or our directors, officers or other employees.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our amended and restated certificate of incorporation provides that the Court of Chancery of the State of Delaware is the sole and exclusive forum for any derivative action or proceeding brought on our behalf, any action asserting a breach of fiduciary duty owed by any of our directors, officers or other employees to us or our stockholders, any action asserting a claim against us arising pursuant to any provisions of the General Corporation Law of the State of Delaware, our amended and restated certificate of incorporation or our amended and restated bylaws, or any action asserting a claim against us that is governed by the internal affairs doctrine. The choice of forum provision may limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or our directors, officers or other employees, which may discourage such lawsuits against us and our directors, officers and other employees. While the Delaware Supreme Court determined that such choice of forum provisions are facially valid, a stockholder may nevertheless seek to bring such a claim arising under the Securities Act of 1933, as amended, against us, our directors, officers, or other employees in a venue other than in the federal district courts of the United States of America. In such instance, we would expect to vigorously assert the validity and enforceability of the exclusive forum provisions of our amended and restated certificate of incorporation, and this may require significant additional costs associated with resolving such action in other jurisdictions.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">58</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">We were and are currently subject to a class action litigation, and may be subject to other litigation in the future.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company, its directors, and certain officers were named as defendants in a consolidated securities class action in connection with its initial public offering, and in October 2019, the Court dismissed the lawsuit with prejudice. In addition, in February 2021 the Company and Ooma Canada Inc. were named as defendants in a class action complaint in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. In the future, especially following periods of volatility in the market price of our shares, additional purported class action or derivative complaints may be filed against us. The outcome of any pending and potential future litigation is difficult to predict and quantify and the defense of such claims or actions can be costly. In addition to diverting financial and management resources and general business disruption, we may suffer from adverse publicity that could harm our brand or reputation, regardless of whether the allegations are valid or whether we are ultimately held liable. A judgment or settlement that is not covered by or is significantly in excess of our insurance coverage for any claims, or our obligations to indemnify the underwriters and the individual defendants, could materially and adversely affect our financial condition, results of operations and cash flows.</span></p>
  <p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;">General Risk Factors</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">If we are unable to hire, retain and motivate qualified personnel, our business will suffer.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our future growth and success depends, in part, on our continued ability to hire and retain highly skilled personnel. We believe there is, and will continue to be, intense competition for highly skilled technical, sales and other personnel with experience in our industry in the San Francisco Bay Area, where our headquarters is located, and in other parts of the United States and Canada. We have from time to time experienced, and we expect to continue to experience, challenges in hiring and retaining skilled personnel with appropriate qualifications. We must provide competitive compensation packages and a high-quality work environment to hire, retain and motivate employees. If we and/or our partners are unable to hire, retain and motivate the existing workforce or attract qualified personnel to fill key positions, we may be unable to manage our business effectively, including the development, marketing and sale of existing and new services, which could have a material adverse effect on our business, financial condition, and results of operations. To the extent we hire personnel from competitors, we may be subject to allegations such personnel have been improperly solicited or divulged proprietary or other confidential information.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">The impact of COVID-19 outbreaks or any future global health crisis or pandemics could disrupt and cause harm to our business, operating results, or financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">COVID-19 outbreaks or the occurrence of any other global health crisis or pandemic could result in suspending travel and restrict the ability of do business in person, which could impact our sales and marketing efforts and our ability to attract new customers and successfully implement our services in a timely manner. In addition, COVID-19 or any future global health crisis or pandemic could disrupt the operations of our customers, partners, contract manufacturers, suppliers and other third-party providers. If we are not able to respond to and manage the impact of such events effectively and if the macroeconomic conditions of the general economy or the industry in which we operate do not improve, or worsen from present levels, our business, operating results, financial condition and cash flows could be adversely affected.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Catastrophic events or political instability could disrupt and cause harm to our business, operating results, or financial condition.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Our corporate headquarters, offices, warehouses and one of our data center facilities are located in Northern California, a region that frequently experiences earthquakes. We also maintain an office in Boca Raton, Florida, an area that has been prone to severe weather events, such as hurricanes. In addition, our third-party contract manufacturer facilities in Vietnam and other Asian countries and our sole third-party customer service and support facility in the Philippines are located on the Pacific Rim near known earthquake fault zones that are vulnerable to damage from earthquakes, tsunamis, volcanic eruptions and/or typhoons. We and our contractors are also vulnerable to other types of disasters, such as power loss, fire, floods, pandemics, cyber-attack, war (including ongoing geopolitical tensions related to Russia&#8217;s actions in Ukraine, resulting sanctions imposed by the United States and other countries, and retaliatory actions taken by Russia in response to such sanctions), political or civil unrest and terrorist attacks and similar events that are beyond our control. In particular, we depend on third-party contractors located in Russia for engineering and software development services. We cannot assure you that our ability to continue transacting with third-party contractors in Russia would not be impacted by the effects of Russia&#8217;s ongoing invasion of Ukraine and resulting international sanctions. If any disasters were to occur, our ability to operate our business could be seriously impaired, and we may endure system interruptions, reputational harm, loss of intellectual property, delays in our services development, lengthy interruptions in our services, breaches of data security and loss of critical data, all of which could harm our future results of operations. Such events may also reduce demand for our products and services because of reduced global or national economic activity and can cause disruptions and extreme volatility in global financial markets, increase rates of default and bankruptcy, and impact levels of business and consumer spending. In addition, we do not carry earthquake insurance and we may not have adequate insurance to cover our losses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">59</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">resulting from other disasters or other similar significant business interruptions. Any significant losses not recoverable under our insurance policies could seriously impair our business and financial condition.</span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Climate change may have an impact on our business.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Any of our primary locations may be vulnerable to the adverse effects of climate change. For example, our offices and facilities in California have experienced, and are projected to continue to experience, climate-related events at an increasing frequency, including drought, heat waves, wildfires and power shutoffs associated with wildfire prevention. Changing market dynamics, global policy developments and the increasing frequency and impact of extreme weather events on critical infrastructure in the U.S. and elsewhere have the potential to disrupt our business, our third-party suppliers and our customers, and may cause us to experience higher churn, losses and additional costs to maintain or resume operations.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Additionally, climate change concerns and the potential resulting environmental impact may result in new or more stringent environmental, health, and safety laws and regulations that may affect us, our suppliers, and our customers. Such laws or regulations could cause us to incur additional direct costs for compliance, as well as increased indirect costs resulting from our customers, suppliers, or both incurring additional compliance costs that are passed on to us. These costs may adversely impact our results of operations and financial condition.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_2_unregistered_sales_equity_securit"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 2. Unregistered Sales of Equit</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">y Securities, Use of Proceeds, and Issuer Purchases of Equity Securities.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Issuer Purchases of Equity Securities</span></p>
  <p style="text-indent:3.358%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;margin-right:0.741%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table presents information with respect to our repurchase of common stock during the quarter ended July 31, 2024.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;margin-right:0.741%;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:23.135%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1.5%;"/>
    <td style="width:16.217%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1.5%;"/>
    <td style="width:16.217%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1.5%;"/>
    <td style="width:16.217%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1.5%;"/>
    <td style="width:16.217%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Period</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total Number of Shares Purchased </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;min-width:fit-content;">(1)</span></p></td>
    <td style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Average Price Paid per Share </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;min-width:fit-content;">(2)</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total Number of Shares Purchased as Part of Publicly Announced Plans or Programs </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;min-width:fit-content;">(1)</span></p></td>
    <td style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:top;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Approximate Dollar Value of Shares that May Yet Be Purchased Under the Plans or Programs (in thousands) </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;min-width:fit-content;">(1)(3)</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">May 1, 2024 to May 31, 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">June 1, 2024 to June 30, 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">98,215</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">8.95</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">98,215</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,121</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">July 1, 2024 to July 31, 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3,121</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">98,215</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">8.95</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">98,215</span></p></td>
    <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;min-width:fit-content;">(1)  </span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">In June 2024, our board of directors authorized a common stock repurchase program of up to $4.0 million. See Note 8. Stockholders&#8217; Equity for further information. The Company withholds shares of common stock on behalf of certain employees in connection with the vesting of restricted stock unit awards issued to such employees to satisfy the minimum statutory tax withholding requirements. Although these withheld shares are not issued or considered common stock repurchases under our stock repurchase program and therefore are not included in the preceding table, they are treated as common stock repurchases in our financial statements as they reduce the number of shares that would have been issued upon vesting.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;min-width:fit-content;">(2)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;"> Average price per share excludes excise taxes and broker&#8217;s commissions.</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;min-width:fit-content;">(3) </span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Amounts presented excludes excise taxes and broker&#8217;s commissions on share repurchases.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_5_other_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 5. Other Information</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_64644697-f70b-4ec4-876e-1bbe78d5e0df" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ecd:MtrlTermsOfTrdArrTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Insider Adoption or Termination of Trading Arrangements</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_780b5ea1-4dcd-4e47-bc5d-70883cb1fae3" contextRef="C_619e96e0-c484-4410-8010-213587e77064" name="ecd:TrdArrAdoptionDate"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">June 27, 2024</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_d1664b6e-5332-47e6-9def-98c39ecccbc2" contextRef="C_619e96e0-c484-4410-8010-213587e77064" name="ecd:TrdArrIndName"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">James A. Gustke</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, our </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_751b4257-b23f-4c45-a74f-f2835110ae87" contextRef="C_619e96e0-c484-4410-8010-213587e77064" name="ecd:TrdArrIndTitle"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Senior Vice President</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, Marketing, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_9c7a8a0a-a687-48de-9f5d-ff942eca42cd" contextRef="C_619e96e0-c484-4410-8010-213587e77064" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-true"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adopted</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> a Rule 10b5-1 Trading Arrangement (as that term is defined in Regulation S-K, Item 408) providing for the sale from time to time of up to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_553b5d71-5e50-46a3-a021-0209bcfbbd48" contextRef="C_b35fb8e0-a38a-46b5-846a-1cdd5a49abf5" name="ecd:TrdArrSecuritiesAggAvailAmt" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">18,656</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> shares of our common stock. The trading arrangement is intended to satisfy the affirmative defense in Rule 10b5-1(c). The duration of the trading arrangement is until </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_e655f13a-d593-42dc-ac09-ad07309133d7" contextRef="C_619e96e0-c484-4410-8010-213587e77064" name="ecd:TrdArrExpirationDate"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">September 27, 2025</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, or earlier if all transactions under the trading arrangement are completed.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">No other directors or officers, as defined in Rule 16a-1(f), </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_1934beee-52c0-411f-ad94-13a6ffd255e8" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_aba165a4-e19d-4643-b1d4-0b4710b89e60" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adopted</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and/or </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_31f71b7b-1616-45f3-8c72-f3bfadfe4e37" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_8ada3582-e053-4ed7-9486-ce363f26e8a1" contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">terminated</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> a &#8220;Rule 10b5-1 trading arrangement&#8221; or a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; each as defined in Regulation S-K Item 408, during the fiscal quarter ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">.</span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_6_exhibits"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Item 6. E</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">xhibits.</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The exhibits listed in the accompanying Exhibit Index are filed or incorporated by reference as part of this Quarterly Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">60</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;">EXHIBIT INDEX</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:7.56%;"/>
    <td style="width:1.66%;"/>
    <td style="width:49.78%;"/>
    <td style="width:1%;"/>
    <td style="width:15%;"/>
    <td style="width:1%;"/>
    <td style="width:15%;"/>
    <td style="width:1%;"/>
    <td style="width:8%;"/>
   </tr>
   <tr style="height:8pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;border-bottom:1pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Exhibit</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Number</span></p></td>
    <td style="vertical-align:bottom;border-bottom:1pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="padding-left:0.01in;vertical-align:bottom;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Description</span></p></td>
    <td style="vertical-align:bottom;border-bottom:1pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="padding-left:0.01in;vertical-align:bottom;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Incorporated by</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Reference From</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Form</span></p></td>
    <td style="vertical-align:bottom;border-bottom:1pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="padding-left:0.01in;vertical-align:bottom;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Incorporated</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">by Reference</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">From Exhibit</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Number</span></p></td>
    <td style="vertical-align:bottom;border-bottom:1pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="padding-left:0.01in;vertical-align:bottom;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Date Filed</span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">3.1</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex3_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Sixteenth Amended and Restated Certificate of Incorporation</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">10.1</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex10_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Amendment No.1 to Credit Agreement by and among the Company and Citizens Bank, N.A.</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;31.1</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex31_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Certification of the Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act.</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;31.2</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex31_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Certification of the Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act.</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;32.1*</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex32_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Certification of the Chief Executive Officer pursuant to Section 906 of the Sarbanes-Oxley Act.</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Furnished herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:4.3pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;32.2*</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex32_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-family:Arial;min-width:fit-content;">Certification of the Chief Financial Officer pursuant to Section 906 of the Sarbanes-Oxley Act.</span></a></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Furnished herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.INS</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Instance Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.SCH</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Taxonomy Extension Schema Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.CAL</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Taxonomy Extension Calculation Linkbase Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.DEF</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Taxonomy Extension Definition Linkbase Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.LAB</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Taxonomy Extension Label Linkbase Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">101.PRE</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Inline XBRL Taxonomy Extension Presentation Linkbase Document</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">  </span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">104</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Filed herewith</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:86.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">*	The certifications furnished in Exhibits 32.1 and 32.2 hereto are deemed to accompany this Quarterly Report on Form 10-Q and will not be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934, as amended. Such certifications will not be deemed to be incorporated by reference into any filings under the Securities Act of 1933, as amended, or the Securities Exchange Act of 1934, as amended, except to the extent that the registrant specifically incorporates it by reference.</span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">61</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="signatures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">SIGNAT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">URES</span></p>
  <p style="text-indent:3.333%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:52.5%;"/>
    <td style="width:4.16%;"/>
    <td style="width:43.34%;"/>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:27.35pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Eric B. Stang</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Eric B. Stang</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">President and Chief Executive Officer</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Executive Officer)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Shig Hamamatsu</span></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shig Hamamatsu</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Chief Financial Officer</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Financial Officer)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">Ooma | FY2025 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">62</span></p></div></div>
  <hr style="page-break-after:always;"/>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-3.1
<SEQUENCE>2
<FILENAME>ooma-ex3_1.htm
<DESCRIPTION>EX-3.1
<TEXT>
<html>
 <head>
  <title>EX-3.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 3.1</font></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">SIXTeenth AMENDED AND RESTATED CERTIFICATE OF INCORPORATION</font></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">of</font></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">OOMA, INC.</font></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a Delaware corporation</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The undersigned, Eric B. Stang, hereby certifies as follows:</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">A.	He is the duly elected and acting President and Chief Executive Officer of Ooma, Inc., a corporation organized and existing under the laws of the State of Delaware (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Corporation</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;).</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">B.	The name of the Corporation is Ooma, Inc. The Corporation was originally incorporated and the original Certificate of Incorporation was filed with the Secretary of State of the State of Delaware on November 19, 2003 under the name of ExploreTel Communications, Inc.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">C.	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Certificate of Incorporation was most recently amended and restated pursuant to an Amended and Restated Certificate of Incorporation filed with the Secretary of State of the State of Delaware on July 22, 2015.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">D.	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">This Sixteenth Amended and Restated Certificate of Incorporation was duly adopted by the Board of Directors of the Corporation and by the stockholders of the Corporation in accordance with Sections 242 and 245 of the General Corporation Law of the State of Delaware, and restates, integrates and further amends the provisions of the Corporation&#x2019;s Certificate of Incorporation.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">E.	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Certificate of Incorporation of this Corporation is hereby amended and restated to read in its entirety as follows:</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article I</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The name of the Corporation is Ooma, Inc.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article II</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The address of the Corporation&#x2019;s registered office in the State of Delaware is 1209 Orange Street, in the City of Wilmington County of New Castle, Zip Code 19801. The name of the registered agent at such address is The Corporation Trust Company.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article III</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The nature of the business or purposes to be conducted or promoted by the Corporation is to engage in any lawful act or activity for which corporations may be organized under the DGCL.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article IV</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.1 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Authorized Capital Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. The total number of shares of all classes of capital stock that the Corporation is authorized to issue is 110,000,000 shares, consisting of 100,000,000 shares of Common Stock, par value $0.0001 per share (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Common Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;), and 10,000,000 shares of Preferred Stock, par value $0.0001 per share (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Preferred Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;).</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.2 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Rights of Common Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Each share of Common Stock shall entitle the holder thereof to one vote on each matter submitted to a vote of holders of Common Stock at a meeting of stockholders.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.3 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Rights of Preferred Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. The Board of Directors is authorized, subject to limitations prescribed by law or this certificate of incorporation (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certificate of Incorporation</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d; which term, as used herein, shall mean the certificate of incorporation of the Corporation, as amended from time to time, including the terms of any certificate of designations relating to any series of Preferred Stock), to provide for the issuance of shares of Preferred Stock in series and to fix by resolution or resolutions the designations, powers, preferences and rights, and the qualifications, limitations or restrictions thereof, of any wholly unissued series of Preferred Stock, including without limitation authority to fix by resolution or resolutions the dividend rights, dividend rate, conversion rights, voting rights, rights and terms of redemption (including sinking fund provisions), redemption price or prices, and liquidation preferences</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">of any such series, and the number of shares constituting any such series and the designation thereof, or any of the foregoing.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.4 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Increase or Decrease in Authorized Capital Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. The Board of Directors is further authorized to increase (but not above the total number of authorized shares of the class) or decrease (but not below the number of shares of any such series then outstanding) the number of shares of any series, the number of which was fixed by it, subsequent to the issuance of shares of such series then outstanding, subject to the powers, preferences and rights, and the qualifications, limitations and restrictions thereof stated in the Certificate of Incorporation or the resolution of the Board of Directors originally fixing the number of shares of such series. If the number of shares of any series is so decreased, then the shares constituting such decrease shall resume the status which they had prior to the adoption of the resolution originally fixing the number of shares of such series.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article V</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.1 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">General Powers</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. The business and affairs of the Corporation shall be managed by or under the direction of the Board of Directors.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.2 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Number of Directors; Election</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, the number of directors that constitutes the entire Board of Directors of the Corporation shall be fixed solely by the Board of Directors pursuant to a resolution adopted by a majority of the Board of Directors.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.3 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Classified Board Structure</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(a) Effective upon the closing date (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Effective Date</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;) of the initial sale of shares of Common Stock in the Corporation&#x2019;s initial public offering pursuant to an effective registration statement filed under the Securities Act of 1933, as amended, and subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, the directors of the Corporation shall be divided into three classes as nearly equal in size as is practicable, hereby designated Class I, Class II and Class III. The Board of Directors may assign members of the Board of Directors already in office to such classes at the time such classification becomes effective. The term of office of the initial Class I directors shall expire at the first annual meeting of the stockholders following the Effective Date, the term of office of the initial Class II directors shall expire at the second annual meeting of the stockholders following the Effective Date and the term of office of the initial Class III directors shall expire at the third annual meeting of the stockholders following the Effective Date. At each annual meeting of stockholders, commencing with the first annual meeting of stockholders following the Effective Date, either (i) directors shall be re-elected to the Board of Directors of the Corporation for a subsequent three-year term or (ii) successors to the directors shall be elected for a full term of three years to succeed the directors of the class whose terms expire at such annual meeting. Subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, if the number of directors that constitutes the Board of Directors is changed, any newly created directorships or decrease in directorships shall be so apportioned by the Board of Directors among the classes as to make all classes as nearly equal in number as is practicable, provided that no decrease in the number of directors constituting the Board of Directors shall shorten the term of any incumbent director.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(b) Notwithstanding any other provisions of this Article, and subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, each director shall serve until his or her successor is duly elected and qualified or until his or her earlier death, resignation, or removal.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.4 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Removal</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, a director may be removed from office by the stockholders of the Corporation only for cause.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.5 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Vacancies and Newly Created Directorships</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Subject to the rights of holders of any series of Preferred Stock with respect to the election of directors, and except as otherwise provided in the DGCL, vacancies occurring on the Board of Directors for any reason and newly created directorships resulting from an increase in the authorized number of directors may be filled only by vote of a majority of the remaining members of the Board of Directors, although less than a quorum, or by a sole remaining director, at any meeting of the Board of Directors. A person so elected by the Board of Directors to fill a vacancy or newly created directorship shall hold office until the next</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">election of the class for which such director shall have been assigned by the Board of Directors and until his or her successor shall be duly elected and qualified.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.6 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Written Ballot</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Elections of directors need not be by written ballot unless the Bylaws of the Corporation shall so provide.</font></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article VI</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.1 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Annual Meetings</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. An annual meeting of stockholders for the election of directors to succeed those whose terms expire and for the transaction of such other business as may properly come before the meeting shall be held at such place, on such date, and at such time as the Board of Directors shall determine (or the chairperson of the Board of Directors in the absence of a designation by the Board of Directors).</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.2 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">No Action by Written Consent of Stockholders</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Except as otherwise expressly provided by the terms of any series of Preferred Stock or other class of stock permitting the holders of such series to act by written consent, any action required or permitted to be taken by stockholders of the Corporation must be effected at a duly called annual or special meeting of the stockholders and may not be effected by written consent in lieu of a meeting.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.3 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Special Meetings</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Except as otherwise expressly provided by the terms of any series of Preferred Stock permitting the holders of such series of Preferred Stock to call a special meeting of the holders of such series, special meetings of stockholders of the Corporation may be called only (i) by the Board of Directors, pursuant to a resolution adopted by a majority of the Board; (ii) the chairperson of the Board of Directors, (iii) the chief executive officer or (iv) the president (in the absence of a chief executive officer), and the ability of the stockholders to call a special meeting is hereby specifically denied. Special meetings of stockholders may not be called by any other person or persons. The Board of Directors may cancel, postpone or reschedule any previously scheduled special meeting at any time, before or after the notice for such meeting has been sent to the stockholders.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.4 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Advance Notice</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Advance notice of stockholder nominations for the election of directors and of business to be brought by stockholders before any meeting of the stockholders of the Corporation shall be given in the manner provided in the Bylaws of the Corporation.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.5 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">No Cumulative Voting</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. No stockholder will be permitted to cumulate votes at any election of directors.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article VII</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7.1 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Limitation of Personal Liability</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. To the fullest extent permitted by the DGCL, as it presently exists or may hereafter be amended from time to time, a director or officer of the Corporation shall not be personally liable to the Corporation or its stockholders for monetary damages for breach of fiduciary duty as a director or officer. If the DGCL is amended to authorize corporate action further eliminating or limiting the personal liability of directors or officers, then the liability of a director or officer of the Corporation shall be eliminated or limited to the fullest extent permitted by the DGCL, as so amended.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7.2 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Indemnification</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Subject to any provisions in the Bylaws of the Corporation related to indemnification of directors or officers of the Corporation, the Corporation shall indemnify, to the fullest extent permitted by applicable law, as now or hereinafter in effect, any director or officer of the Corporation who was or is a party or is threatened to be made a party to any threatened, pending or completed action, suit or proceeding, whether civil, criminal, administrative or investigative (a &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Proceeding</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;) by reason of the fact that he or she is or was a director, officer, employee or agent of the Corporation or is or was serving at the request of the Corporation as a director, officer, employee or agent of another Corporation, partnership, joint venture, trust or other enterprise, including service with respect to employee benefit plans, against expenses (including attorneys&#x2019; fees), judgments, fines and amounts paid in settlement actually and reasonably incurred by such person in connection with any such Proceeding. The Corporation shall be required to indemnify a person in connection with a Proceeding initiated by such person only if the Proceeding was authorized by the Board of Directors.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Corporation shall have the power to indemnify, to the extent permitted by the DGCL, as it presently exists or may hereafter be amended from time to time, any employee or agent of the Corporation who was or is a</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">party or is threatened to be made a party to any Proceeding by reason of the fact that he or she is or was a director, officer, employee or agent of the Corporation or is or was serving at the request of the Corporation as a director, officer, employee or agent of another corporation, partnership, joint venture, trust or other enterprise, including service with respect to employee benefit plans, against expenses (including attorneys&#x2019; fees), judgments, fines and amounts paid in settlement actually and reasonably incurred by such person in connection with any such Proceeding.</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">A right to limitation of personal liability, indemnification or to advancement of expenses arising under a provision of this Certificate of Incorporation or a bylaw of the Corporation shall not be eliminated or impaired by an amendment to this Certificate of Incorporation or the Bylaws of the Corporation after the occurrence of the act or omission that is the subject of the civil, criminal, administrative or investigative action, suit or proceeding for which indemnification or advancement of expenses is sought, unless the provision in effect at the time of such act or omission explicitly authorizes such elimination or impairment after such action or omission has occurred.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article VIII</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Unless the Corporation consents 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 (A) any derivative action or proceeding brought on behalf of the Corporation, (B) any action or proceeding asserting a claim of breach of a fiduciary duty owed by any director or officer of the Corporation to the Corporation or the Corporation&#x2019;s stockholders, (C) any action or proceeding asserting a claim against the Corporation arising pursuant to any provision of the DGCL or the Corporation&#x2019;s Certificate of Incorporation or Bylaws, or (D) any action or proceeding asserting a claim against the Corporation governed by the internal affairs doctrine.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article IX</font></p>
  <p style="text-indent:5.84%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">If any provision of this Certificate of Incorporation becomes or is declared on any ground by a court of competent jurisdiction to be illegal, unenforceable or void, portions of such provision, or such provision in its entirety, to the extent necessary, shall be severed from this Certificate of Incorporation, and the court will replace such illegal, void or unenforceable provision of this Certificate of Incorporation with a valid and enforceable provision that most accurately reflects the Corporation&#x2019;s intent, in order to achieve, to the maximum extent possible, the same economic, business and other purposes of the illegal, void or unenforceable provision. The balance of this Certificate of Incorporation shall be enforceable in accordance with its terms.</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Article X</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10.1 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amendment of Bylaws</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. In furtherance and not in limitation of the powers conferred by statute, the Board of Directors of the Corporation is expressly authorized to adopt, amend or repeal the Bylaws of the Corporation. The stockholders of the Corporation may adopt, amend or repeal the Bylaws only with the affirmative vote of the holders of at least a majority of total voting power of outstanding voting securities, voting together as a single class.</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Notwithstanding any other provision of this Certificate of Incorporation, and in addition to any other vote that may be required by law or the terms of any series of Preferred Stock, the affirmative vote of the holders of at least 66 2/3% of the total voting power of outstanding voting securities, voting together as a single class, shall be required for the stockholders of the Corporation to alter, amend or repeal, or adopt any Bylaw inconsistent with Article II, Sections 3.1, 3.2, 3.4, and 3.12 of Article III, Article VI and Article XI of the Bylaws (including, without limitation, any such Article or Section as renumbered as a result of any amendment, alteration, change, repeal, or adoption of any other Bylaw).</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10.2 </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amendment of Certificate of Incorporation</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. The Corporation reserves the right to amend, alter, change or repeal any provision contained in this Certificate of Incorporation (including any rights, preferences or other designations of Preferred Stock), in the manner now or hereafter prescribed by this Certificate of Incorporation and the DGCL; and all rights, preferences and privileges herein conferred upon stockholders by and pursuant to this Certificate of Incorporation in its present form or as hereafter amended are granted subject to the right reserved in this Article X. Notwithstanding any other provision of this Certificate of Incorporation, and in addition to any other</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">vote that may be required by law or the terms of any series of Preferred Stock, the affirmative vote of the holders of at least 66 2/3% of the voting power of all then outstanding shares of capital stock of the Corporation entitled to vote generally in the election of directors, voting together as a single class, shall be required to amend, alter or repeal, or adopt any provision as part of this Certificate of Incorporation inconsistent with the purpose and intent of, Article V, Article VI, Article VII, Article VIII, Article IX or this Article X (including, without limitation, any such Article as renumbered as a result of any amendment, alteration, change, repeal or adoption of any other Article).</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">IN WITNESS WHEREOF, Ooma, Inc. has caused this Sixteenth Amended and Restated Certificate of Incorporation to be signed by a duly authorized officer of the Corporation on this 7th day of June, 2024.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:52.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:5.769%;"></td>
    <td style="width:1.923%;"></td>
    <td style="width:92.308%;"></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0.003in;padding-left:0.01in;vertical-align:top;padding-bottom:0.006in;border-bottom:0.75pt solid #ffffff;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">By</font></p></td>
    <td style="padding-top:0.003in;padding-left:0.003in;vertical-align:top;padding-bottom:0.006in;border-bottom:0.75pt solid #ffffff;padding-right:0.003in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="padding-top:0.003in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0.006in;border-bottom:0.75pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">: /s/ Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0.003in;padding-left:0.01in;vertical-align:top;padding-bottom:0.003in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="padding-top:0.003in;padding-left:0.003in;vertical-align:top;padding-bottom:0.003in;padding-right:0.003in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="padding-top:0.006in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0.003in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0.003in;padding-left:0.01in;vertical-align:top;padding-bottom:0.003in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="padding-top:0.003in;padding-left:0.003in;vertical-align:top;padding-bottom:0.003in;padding-right:0.003in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="padding-top:0.003in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0.003in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">President and Chief Executive Officer</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="font-variant:small-caps;color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Signature Page to Sixteenth Amended and Restated Certificate of Incorporation of Ooma, Inc.</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">	</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.1
<SEQUENCE>3
<FILENAME>ooma-ex10_1.htm
<DESCRIPTION>EX-10.1
<TEXT>
<html>
 <head>
  <title>EX-10.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 10.1</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Execution Version</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">FIRST AMENDMENT TO CREDIT AGREEMENT</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">This FIRST AMENDMENT TO CREDIT AGREEMENT (this &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;) is entered into as of June 10, 2024 by and among OOMA, INC. (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Borrower</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;), each Lender party hereto and CITIZENS BANK, N.A., as administrative agent (in such capacity, the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Administrative Agent</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;).</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">W I T N E S S E T H:</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">WHEREAS, the Borrower, the Administrative Agent and the Lenders are parties to the Credit Agreement, dated as of October 20, 2023 (as amended, restated, supplemented, or otherwise modified from time to time, the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Credit Agreement</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#x201d;); and</font></p>
  <p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">WHEREAS, the Borrower has requested that the Administrative Agent and the Lenders party hereto amend certain provisions of the Credit Agreement, and, subject to the satisfaction of the conditions set forth herein, the Administrative Agent and the Lenders party hereto are willing to do so, on the terms and conditions set forth herein.</font></p>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 1.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Defined Terms.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  Capitalized terms used but not defined herein (including in the recitals hereto) shall have the meanings assigned to them in the Credit Agreement, as amended hereby.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 2.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Amendments to Credit Agreement</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  Upon the effectiveness hereof, </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Section 7.8</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> of the Credit Agreement is amended as follows:</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">by replacing the figure &#x201c;$5,000,000&#x201d; where it appears in clause (c) thereof with the text &#x201c;$4,000,000 in any calendar year&#x201d;; and</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">by (i) deleting the word &#x201c;and&#x201d; where it appears at the end of clause (e) thereof, (ii) replacing the period at the end of clause  (f) thereof with &#x201c;; and&#x201d; and (iii) inserting a new clause (g) after clause (f) thereof, reading as follows:  </font></div></div>
  <p style="margin-left:6.667%;text-indent:7.143%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">(g) 	so long as (i) no Specified Event of Default shall have occurred and be continuing both before and after giving effect thereto and (ii) the Borrower is in compliance on a Pro Forma Basis with </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Section 7.12</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> after giving effect thereto, the Borrower may make board approved open market share repurchases in respect of its Equity Interests in an aggregate amount for all such share repurchases made in reliance on this clause (g) not to exceed $6,000,000.</font></p>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 3.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Effectiveness</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  This Amendment shall be effective upon the execution and delivery hereof by the Administrative Agent, the Borrower and Lenders constituting the Required Lenders.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 4.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Representations and Warranties.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  To induce the other parties hereto to enter into this Agreement, each Loan Party that is party hereto represents and warrants to the Administrative Agent and the Lenders as follows:</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Such Loan Party has all requisite power and authority to execute, deliver and perform this Amendment and all documents and instruments delivered in connection herewith, such Loan Party has taken all necessary organizational action to authorize the execution, delivery and performance of this Amendment and all documents and instruments delivered in connection herewith, and this Amendment has been duly executed and delivered on behalf of such Loan Party.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">This Amendment constitutes a legal, valid and binding obligation of each such Loan Party, enforceable in accordance with its terms, subject to applicable bankruptcy, insolvency, reorganization, moratorium or other similar laws affecting creditors&#x2019; rights generally and subject to general principles of </font></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <div class="item-list-element-wrapper" style="font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">equity, regardless of whether considered in a proceeding in equity or at law.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Each of the representations and warranties by the Loan Parties in the Loan Documents to which they are party is true and correct in all material respects (or, if qualified as to materiality or as to a Material Adverse Effect, in all respects) as of the date hereof (or, to the extent any such representation or warranty refers specifically to an earlier date, as of such earlier date) and before and after giving effect to this Amendment.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 5.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Effect of this Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Except as specifically amended hereby, all terms, conditions, covenants, representations and warranties contained in the Credit Agreement and the other Loan Documents, all rights of the Administrative Agent, the Lenders and the other Secured Parties and all of the Obligations shall remain in full force and effect.  The Borrower and the other Loan Parties hereby confirm that the Loan Documents are in full force and effect and that the Loan Parties have no right of setoff, recoupment or other offset or any defense as of the date hereof with respect to any of the Obligations or any such Loan Document.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">The execution, delivery and effectiveness of this Amendment shall not directly or indirectly constitute (i) a novation of any of the Obligations under the Credit Agreement or the other Loan Documents or (ii) constitute a course of dealing or, except as expressly amended hereby, other basis for altering any Obligations or any other contract or instrument (including, without limitation, the Credit Agreement and the other Loan Documents).</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">From and after the date hereof, (i) the term &#x201c;Agreement&#x201d; in the Credit Agreement, and all references to the Credit Agreement in any other Loan Document, shall mean the Credit Agreement as amended hereby, and (ii) the term &#x201c;Loan Documents&#x201d; in the Credit Agreement and the other Loan Documents shall include, without limitation, this Amendment and any agreements, instruments and other documents executed and/or delivered in connection herewith.  This Amendment is a Loan Document.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 6.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Counterparts, etc.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  The provisions of </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Section 10.6</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> of the Credit Agreement are hereby incorporated herein by reference as if fully set forth herein, </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">mutatis mutandis</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 7.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Reaffirmation</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  Subject to any limitations on its obligations expressly stated in the Loan Documents to which it is a party, each Loan Party (a) acknowledges and agrees, as of the effectiveness of this Amendment, that all of its obligations under the Loan Documents to which it is a party are reaffirmed and remain in full force and effect on a continuous basis, and (b) reaffirms each Lien granted by each Loan Party pursuant to the Collateral Documents, all of which obligations and Liens remain in full force and effect after giving effect to this Amendment. </font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 8.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">No Actions, Claims, Etc.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> As of the date hereof, each of the Loan Parties hereby acknowledges and confirms that it has no knowledge of any actions, causes of action, claims, demands, damages and liabilities of whatever kind or nature, in law or in equity, against the Administrative Agent, any other Credit Party, or any of their respective officers, employees, representatives, agents, advisors, consultants, counsel or directors arising from any action by such Persons, or failure of such Persons to act on or prior to the date hereof, in each case in connection with the Credit Agreement.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 9.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Governing Law; Jurisdiction; Service of Process</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  </font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">This Amendment shall be governed by, and construed in accordance with, the laws of the State of New York.</font></div></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">2</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Each of the parties hereto irrevocably and unconditionally submits, for itself and its property, to the non-exclusive jurisdiction of the courts of the State of New York sitting in New York County and of the United States District Court of the for the Southern District of New York and any appellate court from any thereof, in any action or proceeding arising out of or relating to this Amendment, or for recognition or enforcement of any judgment, and each of the parties hereto irrevocably and unconditionally agrees that all claims in respect of any such action or proceeding may be heard and determined in such New York State court or, to the fullest extent permitted by applicable law, in such Federal court.  Each of the parties hereto 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.  Nothing in this Amendment shall affect any right that any Credit Party may otherwise have to bring any action or proceeding relating to this Amendment or any other Loan Document against any Loan Party or its properties in the courts of any jurisdiction.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Each of the parties hereto irrevocably and unconditionally waives, to the fullest extent permitted by applicable law, any objection that it may now or hereafter have to the laying of venue of any action or proceeding arising out of or relating to this Amendment in any court referred to in paragraph (b) of this Section.  Each of the parties hereto hereby irrevocably waives, to the fullest extent permitted by applicable law, the defense of an inconvenient forum to the maintenance of such action or proceeding in any such court.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">(d)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Each of the parties hereto irrevocably consents to service of process in the manner provided for notices in the Credit Agreement.  Nothing in this Amendment will affect the right of any party to this Amendment to serve process in any other manner permitted by law.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 10.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Waiver of Jury Trial</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  EACH PARTY HERETO HEREBY IRREVOCABLY WAIVES, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ANY RIGHT IT MAY HAVE TO A TRIAL BY JURY IN ANY LEGAL PROCEEDING DIRECTLY OR INDIRECTLY ARISING OUT OF OR RELATING TO THIS AMENDMENT OR THE TRANSACTIONS CONTEMPLATED HEREBY (WHETHER BASED ON CONTRACT, TORT OR ANY OTHER THEORY).  EACH PARTY HERETO HEREBY (A) CERTIFIES THAT NO REPRESENTATIVE, AGENT OR ATTORNEY OF ANY OTHER PERSON HAS REPRESENTED, EXPRESSLY OR OTHERWISE, THAT SUCH OTHER PERSON WOULD NOT, IN THE EVENT OF LITIGATION, SEEK TO ENFORCE THE FOREGOING WAIVER AND (B) ACKNOWLEDGES THAT IT AND THE OTHER PARTIES HERETO HAVE BEEN INDUCED TO ENTER INTO THIS AMENDMENT BY, AMONG OTHER THINGS, THE MUTUAL WAIVERS AND CERTIFICATIONS IN THIS SECTION.</font></div></div>
  <div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:2.4%;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 11.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Headings</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">.  Section headings used herein are for convenience of reference only, are not part of this Amendment and shall not affect the construction of, or be taken into consideration in interpreting, this Amendment.</font></div></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:36pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">[Signature pages follow]</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">3</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="text-indent:13.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">IN WITNESS WHEREOF, the parties hereto have caused this Amendment to be duly executed by their respective authorized officers as of the day and year first above written.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <table style="margin-left:40%;border-spacing:0;table-layout:fixed;width:54.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:12.04%;"></td>
    <td style="width:55.82%;"></td>
    <td style="width:32.14%;"></td>
   </tr>
   <tr style="height:11pt;word-break:break-word;white-space:pre-wrap;text-align:right;">
    <td colspan="3" style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Borrower:</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">OOMA, INC.</font></p></td>
   </tr>
   <tr style="height:11pt;word-break:break-word;white-space:pre-wrap;text-align:right;">
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">By:</font></p></td>
    <td colspan="2" style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
   </tr>
   <tr style="height:11pt;word-break:break-word;white-space:pre-wrap;text-align:right;">
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;margin-right:0.21736111111111112in;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Name: Shig Hamamastsu</font></p></td>
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
   </tr>
   <tr style="height:11pt;word-break:break-word;white-space:pre-wrap;text-align:right;">
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Title: CFO</font></p></td>
    <td style="text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-right:0.075in;"><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p><p style="text-indent:-14.25pt;padding-left:14.25pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;min-width:fit-content;">&#160;</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						Guarantors:</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						TALKATONE, LLC</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Shig Hamamatsu				</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Name: Shig Hamamastsu</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Title: Manager</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						BROADSMART GLOBAL, INC.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Shig Hamamatsu</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">_______________________</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Name: Shig Hamamastsu</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Title: President</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						JUNCTION NETWORKS INC.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Shig Hamamatsu</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">_______________________</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Name: Shig Hamamastsu</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Title: Treasurer</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						ARUBA ACQUISITION SUBSIDIARY INC.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Shig Hamamatsu</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">_______________________</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Name: Shig Hamamastsu</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Title: President</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						2600HZ, INC.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">						By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Shig Hamamatsu</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">_______________________</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Name: Shig Hamamastsu</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">							Title: Treasurer</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">	</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">[</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Signature Page to Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">]</font></p></div></div>
  <hr style="page-break-after:always;">
  <div style="padding-top:0.5in;min-height:1in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="margin-left:40%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:24pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">CITIZENS BANK, N.A.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">, as Administrative Agent and Lender</font></p>
  <p style="margin-left:40%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">By:	</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">/s/ Robert F Roden</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">________________________</font></p>
  <p style="margin-left:40%;text-indent:11.111%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Name:	Robert F Roden</font></p>
  <p style="margin-left:40%;text-indent:11.111%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Title: Managing Director</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">[</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Signature Page to Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">]</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>ooma-ex31_1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html>
 <head>
  <title>EX-31.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.6in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;" id="ceo_302_cert"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Exhibit 31.1</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CERTIFICATION OF CHIEF EXECUTIVE OFFICER</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">I, Eric B. Stang, certify that:</font></p>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">1.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">I have reviewed this Quarterly Report on Form 10-Q of Ooma, Inc. for the quarter ended July 31, 2024;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">2.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">3.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">4.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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:</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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;</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(c)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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; and</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(d)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">5.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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):</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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; and</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:57.98%;"></td>
    <td style="width:2%;"></td>
    <td style="width:4%;"></td>
    <td style="width:1%;"></td>
    <td style="width:35.02%;"></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;border-bottom:0.25pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Chief Executive Officer</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.6in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>ooma-ex31_2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html>
 <head>
  <title>EX-31.2</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.6in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Exhibit 31.2</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CERTIFICATION OF CHIEF FINANCIAL OFFICER</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">I, Shig Hamamatsu, certify that:</font></p>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:12pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">1.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">I have reviewed this Quarterly Report on Form 10-Q of Ooma, Inc. for the quarter ended July 31, 2024;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">2.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">3.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">4.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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:</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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;</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(c)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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; and</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(d)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:2.269%;display:inline-flex;justify-content:flex-start;">5.</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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):</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(a)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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; and</font></div></div>
  <div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:4.237505514913352%;display:inline-flex;justify-content:flex-start;">(b)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">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>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:56%;"></td>
    <td style="width:1%;"></td>
    <td style="width:4.3%;"></td>
    <td style="width:1%;"></td>
    <td style="width:37.7%;"></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;border-bottom:0.25pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shig Hamamatsu</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="background-color:#ffffff;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Chief Financial Officer</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Financial Officer)</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.6in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>ooma-ex32_1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html>
 <head>
  <title>EX-32.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Exhibit 32.1</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CERTIFICATION OF</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CHIEF EXECUTIVE OFFICER</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In connection with the Quarterly Report of Ooma, Inc. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarterly period ended July 31, 2024, as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Eric Stang, Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that:</font></p>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:3.333%;display:inline-flex;justify-content:flex-start;">(1)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:3.333%;display:inline-flex;justify-content:flex-start;">(2)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div></div>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:58%;"></td>
    <td style="width:2%;"></td>
    <td style="width:3%;"></td>
    <td style="width:1%;"></td>
    <td style="width:36%;"></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Eric B. Stang</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Chief Executive Officer</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>ooma-ex32_2.htm
<DESCRIPTION>EX-32.2
<TEXT>
<html>
 <head>
  <title>EX-32.2</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Exhibit 32.2</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CERTIFICATION OF</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">CHIEF FINANCIAL OFFICER</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In connection with the Quarterly Report of Ooma, Inc. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarterly period ended July 31, 2024, as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Shig Hamamatsu, Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that:</font></p>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:3.333%;display:inline-flex;justify-content:flex-start;">(1)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></div></div>
  <div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:3.333%;display:inline-flex;justify-content:flex-start;">(2)</font><div style="width:100%;display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div></div>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </font></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:58%;"></td>
    <td style="width:2%;"></td>
    <td style="width:3%;"></td>
    <td style="width:1%;"></td>
    <td style="width:36%;"></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Date: September 6, 2024</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">By:</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;border-bottom:0.25pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Shig Hamamatsu</font></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Chief Financial Officer</font></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(Principal Financial Officer)</font></p></td>
   </tr>
   <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>ooma-20240731.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!-- DFIN New ActiveDisclosure (SM) XBRL Schema Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2024-09-06T11:04:06.4524+00:00 -->
<!-- Copyright (c) 2024 Donnelly Financial Solutions, Inc. All Rights Reserved. -->
<xsd:schema targetNamespace="http://www.ooma.com/20240731" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:ooma="http://www.ooma.com/20240731" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2024" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:srt="http://fasb.org/srt/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:calc="https://xbrl.org/2023/calculation-1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/instance"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/linkbase"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" namespace="http://xbrl.org/2005/xbrldt"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd" namespace="http://xbrl.sec.gov/ecd-sub/2024"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd" namespace="http://xbrl.org/2020/extensible-enumerations-2.0"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd" namespace="http://fasb.org/srt/2024"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd" namespace="http://xbrl.sec.gov/dei/2024"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd" namespace="http://fasb.org/us-gaap/2024"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2023/calculation-1.1.xsd" namespace="https://xbrl.org/2023/calculation-1.1"/>
  <xsd:import schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" namespace="http://www.xbrl.org/dtr/type/2022-03-31"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd" namespace="http://xbrl.sec.gov/ecd/2024"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" id="Role_DocumentDocumentAndEntityInformation">
        <link:definition>100000 - Document - Document and Entity 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited">
        <link:definition>100010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
        <link:definition>100020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
        <link:definition>100030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited">
        <link:definition>100040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" id="DisclosureOverviewAndBasisOfPresentation">
        <link:definition>995455 - Disclosure - Overview and Basis of Presentation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" id="Role_DisclosureRevenueAndDeferredRevenue">
        <link:definition>995465 - Disclosure - Revenue and Deferred Revenue</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements" id="Role_DisclosureFairValueMeasurements">
        <link:definition>995475 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents" id="Role_DisclosureBalanceSheetComponents">
        <link:definition>995485 - Disclosure - Balance Sheet Components</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" id="DisclosureAcquiredIntangibleAssets1">
        <link:definition>995495 - Disclosure - Acquired Intangible Assets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases" id="Role_DisclosureOperatingLeases">
        <link:definition>995505 - Disclosure - Operating Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity" id="Role_DisclosureStockholdersEquity">
        <link:definition>995515 - Disclosure - 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation" id="Role_DisclosureStockBasedCompensation">
        <link:definition>995525 - Disclosure - Stock-Based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes" id="Role_DisclosureIncomeTaxes">
        <link:definition>995535 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1" id="DisclosureBasicAndDilutedNetLossIncomePerShare1">
        <link:definition>995545 - Disclosure - Basic and Diluted Net (Loss) Income Per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" id="Role_DisclosureCommitmentsAndContingencies">
        <link:definition>995555 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements" id="Role_DisclosureFinancingArrangements">
        <link:definition>995565 - Disclosure - Financing 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1" id="DisclosureBusinessAcquisition1">
        <link:definition>995575 - Disclosure - Business Acquisition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEvent" id="DisclosureSubsequentEvent">
        <link:definition>995585 - Disclosure - Subsequent Event</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" id="DisclosureOverviewAndBasisOfPresentationPolicies">
        <link:definition>995595 - Disclosure - Overview and Basis of Presentation (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" id="Role_DisclosureRevenueAndDeferredRevenueTables">
        <link:definition>995605 - Disclosure - Revenue and Deferred Revenue (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" id="Role_DisclosureFairValueMeasurementsTables">
        <link:definition>995615 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" id="Role_DisclosureBalanceSheetComponentsTables">
        <link:definition>995625 - Disclosure - Balance Sheet Components (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" id="DisclosureAcquiredIntangibleAssetsTables">
        <link:definition>995635 - Disclosure - Acquired Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables" id="Role_DisclosureOperatingLeasesTables">
        <link:definition>995645 - Disclosure - Operating Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables" id="Role_DisclosureStockholdersEquityTables">
        <link:definition>995655 - Disclosure - Stockholders' Equity (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" id="Role_DisclosureStockBasedCompensationTables">
        <link:definition>995665 - Disclosure - Stock-Based Compensation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables" id="DisclosureBasicAndDilutedNetLossIncomePerShareTables">
        <link:definition>995675 - Disclosure - Basic and Diluted Net (Loss) Income Per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables" id="DisclosureBusinessAcquisitionTables">
        <link:definition>995685 - Disclosure - Business Acquisition (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" id="Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails">
        <link:definition>995695 - Disclosure - Revenue and Deferred Revenue - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" id="Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails">
        <link:definition>995705 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" id="Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails">
        <link:definition>995715 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" id="Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
        <link:definition>995725 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" id="Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1">
        <link:definition>995735 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" id="Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
        <link:definition>995745 - Disclosure - Fair Value Measurements - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails">
        <link:definition>995755 - Disclosure - Balance Sheet Components - Components of Inventories (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails">
        <link:definition>995765 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" id="Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails">
        <link:definition>995775 - Disclosure - Balance Sheet Components - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
        <link:definition>995785 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" id="DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails">
        <link:definition>995795 - Disclosure - Acquired Intangible Assets - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" id="DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
        <link:definition>995805 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" id="DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails">
        <link:definition>995815 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" id="Role_DisclosureOperatingLeasesAdditionalInformationDetails">
        <link:definition>995825 - Disclosure - Operating Leases - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" id="Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails">
        <link:definition>995835 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" id="DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2">
        <link:definition>995845 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details) 2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" id="Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails">
        <link:definition>995855 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" id="DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails">
        <link:definition>995865 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" id="Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails">
        <link:definition>995875 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" id="Role_DisclosureStockholdersEquityAdditionalInformationDetails">
        <link:definition>995885 - Disclosure - Stockholders' Equity - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" id="Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails">
        <link:definition>995895 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" id="DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails">
        <link:definition>995905 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" id="Role_DisclosureStockBasedCompensationAdditionalInformationDetails">
        <link:definition>995915 - Disclosure - Stock-Based Compensation - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" id="Role_DisclosureIncomeTaxesAdditionalInformationDetails">
        <link:definition>995925 - Disclosure - Income Taxes - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails" id="DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails">
        <link:definition>995935 - Disclosure - Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails" id="DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails">
        <link:definition>995945 - Disclosure - Basic and Diluted Net Loss Per Share - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" id="Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails">
        <link:definition>995955 - Disclosure - Commitments and Contingencies - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" id="Role_DisclosureFinancingArrangementsAdditionalInformationDetails">
        <link:definition>995965 - Disclosure - Financing Arrangements - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" id="DisclosureBusinessAcquisitionAdditionalInformationDetails">
        <link:definition>995975 - Disclosure - Business Acquisition - Additional 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 roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails" id="DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails">
        <link:definition>995985 - Disclosure - Business Acquisition - Schedule of Final Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" id="DisclosureSubsequentEventAdditionalInformationDetails">
        <link:definition>995995 - Disclosure - Subsequent Event - Additional 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:linkbase id="lnk">
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:href="ooma-20240731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:href="ooma-20240731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:href="ooma-20240731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#IndividualsOnly" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables" xlink:href="ooma-20240731.xsd#DisclosureBusinessAcquisitionTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:href="ooma-20240731.xsd#DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:href="ooma-20240731.xsd#DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails" xlink:href="ooma-20240731.xsd#DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#DisclosureSubsequentEventAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd#eedm" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:href="ooma-20240731.xsd#Role_DocumentDocumentAndEntityInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:href="ooma-20240731.xsd#Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingArrangements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" xlink:href="ooma-20240731.xsd#DisclosureOverviewAndBasisOfPresentation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenue" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:href="ooma-20240731.xsd#Role_DisclosureFairValueMeasurements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponents" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" xlink:href="ooma-20240731.xsd#DisclosureAcquiredIntangibleAssets1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases" xlink:href="ooma-20240731.xsd#Role_DisclosureOperatingLeases" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity" xlink:href="ooma-20240731.xsd#Role_DisclosureStockholdersEquity" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation" xlink:href="ooma-20240731.xsd#Role_DisclosureStockBasedCompensation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:href="ooma-20240731.xsd#Role_DisclosureIncomeTaxes" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1" xlink:href="ooma-20240731.xsd#DisclosureBasicAndDilutedNetLossIncomePerShare1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:href="ooma-20240731.xsd#Role_DisclosureCommitmentsAndContingencies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements" xlink:href="ooma-20240731.xsd#Role_DisclosureFinancingArrangements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1" xlink:href="ooma-20240731.xsd#DisclosureBusinessAcquisition1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEvent" xlink:href="ooma-20240731.xsd#DisclosureSubsequentEvent" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" xlink:href="ooma-20240731.xsd#DisclosureOverviewAndBasisOfPresentationPolicies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" xlink:href="ooma-20240731.xsd#Role_DisclosureRevenueAndDeferredRevenueTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:href="ooma-20240731.xsd#Role_DisclosureFairValueMeasurementsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponentsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" xlink:href="ooma-20240731.xsd#DisclosureAcquiredIntangibleAssetsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables" xlink:href="ooma-20240731.xsd#Role_DisclosureOperatingLeasesTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables" xlink:href="ooma-20240731.xsd#Role_DisclosureStockholdersEquityTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" xlink:href="ooma-20240731.xsd#Role_DisclosureStockBasedCompensationTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables" xlink:href="ooma-20240731.xsd#DisclosureBasicAndDilutedNetLossIncomePerShareTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:href="ooma-20240731.xsd#DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:href="ooma-20240731.xsd#DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails" xlink:href="ooma-20240731.xsd#DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails" xlink:href="ooma-20240731.xsd#DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" xlink:href="ooma-20240731.xsd#DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
        <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:title="labelLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTextBlock" xlink:label="us-gaap_ShortTermDebtTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FiscalYearEndPolicyTextBlock" xlink:label="ooma_FiscalYearEndPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JamesAGustkeMember" xlink:label="ooma_JamesAGustkeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainFromNoteConversion" xlink:label="ooma_GainFromNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationGainCharges" xlink:label="ooma_FacilitiesConsolidationGainCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConversionPricePerSharePercentage" xlink:label="ooma_ConversionPricePerSharePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueDisclosureAbstract" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares repurchased for tax withholdings on RSU vesting</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Comprehensive Income Loss Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Comprehensive income loss.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Comprehensive Loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition related transaction costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Acquisition Related Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenuesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenuesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenues [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock and APIC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock Including Additional Paid in Capital [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2029</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Final Purchase Price Allocation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease, description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Final purchase price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Consideration Transferred, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations, percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Expenses And Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued expenses and other current liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2025 remainder</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Leases [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer A</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer A [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer A.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Service</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyLossInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cumulative charges of litigation loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyLossInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Loss in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets by Major Class</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Base Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Base Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchases of common stock, shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock Purchase Rights under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders' Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Regulatory fees and taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Regulatory Tax Accruals</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Regulatory tax accruals.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue and Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sale of Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Sale of Stock [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and Cash Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing remaining capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Remaining Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated useful life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Estimated life (in years)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Available For Sale Securities [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in operating assets and liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Operating Capital [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financing Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Prepaid expenses and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Overview and Basis of Presentation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Description and Basis of Presentation [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Statement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">(Loss) income before income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Revenue Recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest expense or penalties related to unrecognized tax benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non cancelable service agreement with cloud service provider.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non Cancelable Service Agreement With Cloud Service Provider [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non Cancelable Service Agreement With Cloud Service Provider</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cover [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net (loss) income per share of common stock, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Basic net (loss) income per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating expenses:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Less: current deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accrued liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity, Outstanding amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Average Outstanding Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt, net of current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-Term Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Retained Earnings (Accumulated Deficit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings (Accumulated Deficit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Shares, Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Shares, Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current assets:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash provided by operating activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Operating Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Service</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accumulated Other Comprehensive Income (Loss), Net of Tax, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated other comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property plant and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Property, Plant and Equipment, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property, Plant and Equipment, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2029</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable, accrued expenses and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase Decrease In Accounts Payable Accrued Expenses And Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase (decrease) in accounts payable accrued expenses and other liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Operating Activities, Cash Flow Statement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-current deferred revenue included in other long-term liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred revenue, non-current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Financial Assets at Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInSecondYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation, to be Paid, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInSecondYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable purchase commitments between March 2024 and February 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Denominator</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share Basic Diluted Other Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquired Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangibles</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Cash Flows [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Units</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Components</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Components [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Employee-related Liabilities, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payroll and related expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee-related Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Finite Lived Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Asset, Finite-Lived [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration of Net Accounts Receivable Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment for Contingent Consideration Liability, Investing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingency related payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum borrowing capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Shares, RSUs Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Shares, RSUs Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Long-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Long-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Other current and non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Other Current And Non current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed, other current and noncurrent assets.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finished goods</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Finished Goods, Net of Reserves</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">SOFR</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net (loss) income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Lease, Description [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed operating lease liability.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Pro forma revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Pro Forma Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisitions And Divestitures Disclosure Text Block</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business acquisitions and divestitures disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Component</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Component [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">General and Administrative Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of countries outside United States represented 10% or more of total revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Countries Outside That Exceeded Ten Percentage Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of countries outside that exceeded ten percentage of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash payments for operating leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fiscal Year End Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Fiscal year end.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PayablesAndAccrualsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payables and Accruals [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of shares of common stock issued under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Shares, Employee Stock Purchase Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Short-Term Investments, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense and Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfArrangementAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets, Major Class Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Current Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Facilities consolidation gain</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Facilities consolidation charges.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Facilities Consolidation Charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Facilities consolidation charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue Benchmark [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EurodollarMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Eurodollar Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EurodollarMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Eurodollar [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JamesAGustkeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">James A. Gustke</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JamesAGustkeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">James A. Gustke [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JamesAGustkeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">James A. Gustke.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summarizes of Restricted Stock Units Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Short-term investments due in less than a year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Due in one year or less</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Acquired from Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Sales [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of units issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Equity Interest Issued or Issuable, Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">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:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash and cash equivalents at beginning of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash and cash equivalents at end of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total cash, cash equivalents and restricted cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted purchase price of shares of common stock under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Per Share Weighted Average Price of Shares Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cost of Goods and Services Sold, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total cost of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Goods and Services Sold</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related and Nonrelated Parties [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Lease, Cost, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Lease costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lease, Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Revenue Disaggregated by Revenue Source</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Selling and Marketing Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Maturities of Operating Lease Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Gross Value, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Finite-Lived Intangible Assets, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Business acquisition, net of cash acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Total cash consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Final aggregate fair value consideration transferred in cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Businesses, Net of Cash Acquired, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">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:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Compensation expenses recognized over weighted average vesting period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation, to be Paid, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable purchase commitments between March 2024 and February 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and Cash Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Junction Networks, Inc.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Junction Networks, Inc. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Junction Networks, Inc. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments And Contingencies Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments And Contingencies Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Commitments and contingencies disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recent Accounting Pronouncements Not Yet Adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">AOCL</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">AOCI Attributable to Parent [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Investment in privately-held company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment In Privately Held Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Investment in privately-held company.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Ooma Residential</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ooma Residential [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Ooma Residential.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net (loss) income per share of common stock:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income (loss) per share of common stock:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share Basic Diluted [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Ooma Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ooma Business [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Ooma Business.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Remaining Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Numerator</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss) Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated fair value of awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-Based Compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subscription and Services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subscription And Services [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Subscription and services.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average discount rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Lease, Description [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Thereafter</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee Operating Lease Liability Payments Due After Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Amount of lessee's undiscounted obligation for lease payment for operating lease due after 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).</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Acquired Intangible Assets Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Intangible Assets and Goodwill [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash and Cash Equivalents, at Carrying Value, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents, at Carrying Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Stockholders' Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate intrinsic value of vested options exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Research and Development Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Product and other revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product And Other Revenue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Product and other revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense for deferred sales commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Deferred Sales Commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock options granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Principles of Consolidation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financial Instruments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instruments [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Global Telecom Corporation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Global Telecom Corporation [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Global Telecom Corporation.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations, period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sale of Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Sale of Stock [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from investing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Payments for repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for Repurchase of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Category of Item Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Category of Item Purchased [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum open market repurchases of equity interests</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum Open Market Repurchases of Equity Interests</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Maximum open market repurchases of equity interests.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of sources of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Sources Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of sources of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">OnSIP.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">OnSIP [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">OnSIP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Contractual Term [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Share based compensation arrangement by share based payment award options outstanding weighted average remaining contractual term.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment for inventory purchases and related costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Related Party for Inventory Purchases and Related Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Payments to related party for inventory purchases and related costs.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-Term Debt, Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Carrying Value, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Finite-Lived Intangible Assets, Net, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Finite-Lived Intangible Assets, Net, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trade names</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trade Names [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-Term Debt, Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Accrued Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities and Stockholders&#8217; Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Financing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash (used in) provided by financing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Potentially dilutive shares from equity plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Potentially dilutive securities excluded from the computation of diluted net loss per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Outstanding principal and unpaid interests converted to shares.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Outstanding Principal and Unpaid Interests Converted To Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Outstanding principal and unpaid interests converted to shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income tax provision</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Income tax provision</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combinations [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred Revenue Arrangement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Arrangement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total stockholders&#8217; equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">BALANCE</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">BALANCE</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Significant Accounting Policies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Significant Accounting Policies Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Disclosure of significant accounting policies.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Loss Contingency Accrual, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Loss Contingency Accrual, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency Accrual</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued liabilities for loss contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash consideration paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Base purchase price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Business acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Businesses, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Units (RSUs)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock Units (RSUs) [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Carrying value of convertible note.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Carrying Value of Convertible Note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Carrying value of convertible promissory note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Goodwill, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Goodwill, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unrecognized compensation expense related to unvested share-based awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred income tax benefit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred tax liabilities assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred tax liabilities assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeasesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Leases [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Use of Estimates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Use of Estimates, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred sales commissions, non-current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Sales Commissions Non Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Deferred sales commissions non current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue, by Arrangement, Disclosure [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration risk, percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Supplemental Cash Flow Information Related to Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Summary Of Supplemental Cash Flow Information Related To Leases Table [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Tabular disclosure of supplemental cash flow information related to leases.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement initiation date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Initiation Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Acquiree [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Equity financing.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Financing [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Financing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total operating expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Remaining operating lease liability wrote off.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Remaining Operating Lease Liability Wrote Off</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Write off of lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Measurements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average grant date fair value of options granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subsequent Event</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities and stockholders&#8217; equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Prepaid Expense, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid expenses and other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Thereafter</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite Lived Intangible Assets Amortization Expense After Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Finite lived intangible assets amortization expense after year four.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net (loss) income per share of common stock, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Diluted net (loss) income per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Diluted, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Supplemental Balance Sheet Information Related to Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Summary Of Supplemental Balance Sheet Information Related To Leases Table [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Tabular disclosure of supplemental balance sheet information related to leases.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Other Current and Non-current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Other Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, Interest rate description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Interest Rate Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in investing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Investing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Unrecognized Tax Benefits, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Unrecognized Tax Benefits, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unrecognized tax benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unrecognized Tax Benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Vesting period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Customer-related liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Customer Related Liabilities Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued customer related liabilities current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainFromNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Gain from note conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainFromNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain From Note Conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainFromNoteConversion_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Gain from note conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Less: imputed interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-Based Payment Arrangement, Noncash Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Noncash Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related and Nonrelated Parties [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gross profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gross Profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basic and Diluted Net (Loss) Income Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Money Market Funds</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Money Market Funds [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Basic weighted average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Weighted average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted Average Number of Shares Outstanding, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Convertible note receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Convertible note receivable (see "GTC" below)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Convertible Note Receivable From Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Convertible note receivable from related party.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from issuance of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Issuance of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Amortization expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization of intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financial Instrument</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred Revenue Arrangement By Type [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Arrangement, by Type [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Long-Term Purchase Commitment, Category of Item Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Purchase Commitment, Category of Item Purchased [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationGainCharges_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Facilities consolidation gain</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationGainCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Facilities consolidation gain (charges)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationGainCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Facilities consolidation gain (charges)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock under equity-based plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Convertible Promissory Note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Convertible Promissory Note [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Convertible promissory note.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Policies [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Miscellaneous, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summarizes of Stock Option Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2600Hz, Inc</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Two Thousand Six Hundred Hz, Inc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">2,600Hz, Inc.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Raw materials</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Raw Materials, Net of Reserves</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders&#8217; equity:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-Cancelable Service Agreement with Telecommunications Provider</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non Cancelable Service Agreement With Telecommunications Provider [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non-cancelable service agreement with telecommunications provider member.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer, Including Assessed Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Securities Act File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net (decrease) increase in cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">(Loss) income from operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Income (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LetterOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Letters of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LetterOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Letter of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Purchase Obligation, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable inventory purchase commitments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments And Contingencies Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments And Contingencies Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule of commitments and contingencies disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Key Bank Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Key Bank Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Key bank credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Repayments of Long-Term Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Repayments of Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repayments of long-term debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accumulated Amortization, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accumulated Amortization, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of revenue:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Revenue [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subscription and services revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subscription and services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subscription And Services Revenue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Subscription and services revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total inventory</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConversionPricePerSharePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Conversion price per share percentage.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConversionPricePerSharePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Conversion price per share percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Termination penalties in connection with termination of credit agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Termination Penalties in Connection with Termination of Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Termination penalties in connection with termination of credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Additional Paid in Capital, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Additional paid-in capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid in Capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt instrument interest rate increases on borrowings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Increase (Decrease)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred sales commissions, current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Sales Commissions Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Deferred sales commissions current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt issuance costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Issuance Costs, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Debt Issuance Costs, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Short-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Developed technology</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Developed Technology Rights [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Stated Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Capital expenditures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock repurchase program authorized amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program, Authorized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Receivable from the seller for working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Consideration Transferred Working Capital Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination consideration transferred working capital adjustment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business acquisition, working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2025 remainder</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Minimum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Minimum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition transaction bonuses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Acquisition Transaction Bonuses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Acquisition transaction bonuses.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Grant-Date Fair Value Per Share, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Grant-Date Fair Value Per Share, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization of operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset, Periodic Reduction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Adjustments to reconcile net loss to net cash provided by operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Investments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2026</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders Equity Note Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stockholders Equity Note Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Stockholders equity note disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Inventory, Current [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Maturities, Prepayments and Calls of Short-Term Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from maturities of short-term investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock repurchase program, remaining authorized repurchase amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program, Remaining Authorized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment of cash consideration subject to working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment of Cash Consideration Subject to Working Capital Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Payment of cash consideration subject to working capital adjustments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basis of Presentation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Basis of Accounting, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2026</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Depreciation, Amortization and Accretion, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Depreciation and amortization of capital expenditures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Depreciation, Amortization and Accretion, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer relationships</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Relationships [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Acquisition related transaction costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition related costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Transaction Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of customers that individually exceeded 10% of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Customers That Individually Exceeded10 Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of customers that individually exceeded 10% of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non-marketable equity investments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non-marketable Equity Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-marketable equity investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Fair value of GTC preferred stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Estimated Future Amortization Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents, Fair Value Disclosure</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Present value of lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accrued Liabilities [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and contingencies (Note 11)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest and other (expense) income, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest And Other Income Expense Nonoperating Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">The net amount of nonoperating interest and other income (expense).</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Fair Value, Net Asset (Liability), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value level asset and liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Net Asset (Liability)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Diluted weighted-average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted Average Number of Shares Outstanding, Diluted, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Receivable, after Allowance for Credit Loss, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total future minimum lease payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Inventories, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Inventories and deferred inventory costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment Owned, Balance, Principal Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Investment in the common and preferred shares of GTC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Lessee operating lease expiration date ending period.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee Operating Lease Expiration Date Ending Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease, expiration date ending period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total leased assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Operating lease asset.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Gain on note conversion.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain On Note Conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Gain on note conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, Variable rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Basis Spread on Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets, Net (Excluding Goodwill) [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total purchase consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisitions And Divestitures Abstract</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business acquisitions and divestitures.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revolving Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revolving Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from financing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Exercise Price Per Share, Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Exercise Price Per Share, Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Potentially dilutive shares from equity plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Intangible Assets, Net (Excluding Goodwill), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets, Net (Excluding Goodwill)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Right-of-use assets recognized in exchange for new operating lease obligations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of commitment fees on revolving credit facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Commitment Fee Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts payable and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Accounts Payable And Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed, accounts payable and other liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in other comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average remaining lease term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Weighted Average Remaining Lease Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subsequent Event</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Payable, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Stockholders Equity Note Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule Of Stockholders Equity Note Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule of stockholders equity note disclosure.</link:label>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:to="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenuesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseDescription" xlink:to="us-gaap_LesseeOperatingLeaseDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CustomerAMember" xlink:to="ooma_CustomerAMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyLossInPeriod" xlink:to="us-gaap_LossContingencyLossInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BaseRateMember" xlink:to="us-gaap_BaseRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockMember" xlink:to="us-gaap_EmployeeStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_RegulatoryTaxAccruals" xlink:to="ooma_RegulatoryTaxAccruals_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTextBlock" xlink:to="us-gaap_ShortTermDebtTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockMember" xlink:to="us-gaap_PreferredStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligationDueInSecondYear" xlink:to="us-gaap_PurchaseObligationDueInSecondYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:to="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_BalanceSheetComponentsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FiscalYearEndPolicyTextBlock" xlink:to="ooma_FiscalYearEndPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_PayablesAndAccrualsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermInvestments" xlink:to="us-gaap_ShortTermInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_TypeOfArrangementAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FacilitiesConsolidationCharges" xlink:to="ooma_FacilitiesConsolidationCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EurodollarMember" xlink:to="us-gaap_EurodollarMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_JamesAGustkeMember" xlink:to="ooma_JamesAGustkeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductMember" xlink:to="us-gaap_ProductMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductConcentrationRiskMember" xlink:to="us-gaap_ProductConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_CashAndCashEquivalentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_JunctionNetworksIncMember" xlink:to="ooma_JunctionNetworksIncMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_InvestmentInPrivatelyHeldCompany" xlink:to="ooma_InvestmentInPrivatelyHeldCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OomaResidentialMember" xlink:to="ooma_OomaResidentialMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OomaBusinessMember" xlink:to="ooma_OomaBusinessMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLossAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SubscriptionAndServicesMember" xlink:to="ooma_SubscriptionAndServicesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ProductAndOtherRevenueMember" xlink:to="ooma_ProductAndOtherRevenueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfDeferredSalesCommissions" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_GlobalTelecomCorporationMember" xlink:to="ooma_GlobalTelecomCorporationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfSourcesOfRevenue" xlink:to="ooma_NumberOfSourcesOfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OnsipMember" xlink:to="ooma_OnsipMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" xlink:to="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityDescription" xlink:to="us-gaap_LineOfCreditFacilityDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_ShortTermDebtTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_DeferredRevenueArrangementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:to="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyAccrualAtCarryingValue" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CarryingValueOfConvertibleNote" xlink:to="ooma_CarryingValueOfConvertibleNote_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_DeferredSalesCommissionsNonCurrent" xlink:to="ooma_DeferredSalesCommissionsNonCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:to="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:to="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityInitiationDate1" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="ooma_BalanceSheetComponentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EquityFinancingMember" xlink:to="ooma_EquityFinancingMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:to="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_GainFromNoteConversion" xlink:to="ooma_GainFromNoteConversion_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MoneyMarketFundsMember" xlink:to="us-gaap_MoneyMarketFundsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:to="ooma_ConvertibleNoteReceivableFromRelatedParty_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_FinancialInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FacilitiesConsolidationGainCharges" xlink:to="ooma_FacilitiesConsolidationGainCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ConvertiblePromissoryNoteMember" xlink:to="ooma_ConvertiblePromissoryNoteMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_TwoThousandSixHundredHzIncMember" xlink:to="ooma_TwoThousandSixHundredHzIncMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CreditAgreementMember" xlink:to="ooma_CreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LetterOfCreditMember" xlink:to="us-gaap_LetterOfCreditMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligation" xlink:to="us-gaap_PurchaseObligation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_KeyBankCreditAgreementMember" xlink:to="ooma_KeyBankCreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfRevenueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SubscriptionAndServicesRevenueMember" xlink:to="ooma_SubscriptionAndServicesRevenueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ConversionPricePerSharePercentage" xlink:to="ooma_ConversionPricePerSharePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_DeferredSalesCommissionsCurrent" xlink:to="ooma_DeferredSalesCommissionsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFinanceCostsNet" xlink:to="us-gaap_DeferredFinanceCostsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DevelopedTechnologyRightsMember" xlink:to="us-gaap_DevelopedTechnologyRightsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StockRepurchaseProgramAuthorizedAmount1" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueDisclosureAbstract" xlink:to="us-gaap_DeferredRevenueDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AcquisitionTransactionBonuses" xlink:to="ooma_AcquisitionTransactionBonuses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermInvestmentsMember" xlink:to="us-gaap_ShortTermInvestmentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="ooma_StockholdersEquityNoteDisclosureLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:to="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAmortizationAndAccretionNet" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonMarketableEquityInvestments" xlink:to="ooma_NonMarketableEquityInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueNetAssetLiability" xlink:to="us-gaap_FairValueNetAssetLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OperatingLeaseAsset" xlink:to="ooma_OperatingLeaseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_GainOnNoteConversion" xlink:to="ooma_GainOnNoteConversion_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:to="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="ooma_BalanceSheetComponentsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LiabilitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillGross" xlink:to="us-gaap_GoodwillGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl"/>
        </link:labelLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType" order="49.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag" order="50.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate" order="51.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus" order="52.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus" order="53.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol" order="54.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName" order="55.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey" order="56.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate" order="57.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory" order="58.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness" order="59.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany" order="60.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding" order="61.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus" order="62.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityShellCompany" order="63.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber" order="64.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber" order="65.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1" order="66.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2" order="67.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown" order="68.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince" order="69.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode" order="70.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode" order="71.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber" order="72.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent" order="73.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle" order="74.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName" order="75.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentQuarterlyReport" order="76.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport" order="77.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode" order="78.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LongTermDebt" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_Liabilities" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Goodwill" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Assets" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenuesAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfRevenueAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingExpensesAbstract" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationGainCharges" xlink:label="ooma_FacilitiesConsolidationGainCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_GainOnNoteConversion" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_FacilitiesConsolidationCharges" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_FacilitiesConsolidationGainCharges" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_7"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity_7" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember" xlink:label="ecd_AllIndividualsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JamesAGustkeMember" xlink:label="ooma_JamesAGustkeMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_JamesAGustkeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTextBlock" xlink:label="us-gaap_ShortTermDebtTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_ShortTermDebtTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:to="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEvent" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FiscalYearEndPolicyTextBlock" xlink:label="ooma_FiscalYearEndPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_FiscalYearEndPolicyTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_ComprehensiveIncomeLossPolicyTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_SignificantAccountingPoliciesPolicyTextBlock" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfOtherAssetsTableTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ProductConcentrationRiskMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaBusinessMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfSourcesOfRevenue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaResidentialMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerAMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ConcentrationRiskTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="srt_MajorCustomersAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueDisclosureAbstract" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueDisclosureAbstract" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="us-gaap_DeferredRevenueArrangementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_MoneyMarketFundsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_FairValueNetAssetLiability" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_ShortTermInvestmentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_FinancialInstrumentAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_CashAndCashEquivalentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ShortTermInvestments" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="ooma_NonMarketableEquityInvestments" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="ooma_DeferredSalesCommissionsCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="ooma_ConvertibleNoteReceivableFromRelatedParty" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="ooma_DeferredSalesCommissionsNonCurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConversionPricePerSharePercentage" xlink:label="ooma_ConversionPricePerSharePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainFromNoteConversion" xlink:label="ooma_GainFromNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ooma_EquityFinancingMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ooma_ConvertiblePromissoryNoteMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_PreferredStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ooma_GlobalTelecomCorporationMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ooma_BalanceSheetComponentsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_InvestmentInPrivatelyHeldCompany" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_ConvertibleNoteReceivableFromRelatedParty" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_TypeOfArrangementAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_PurchaseObligation" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_DebtInstrumentAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="ooma_BalanceSheetComponentsLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_ConversionPricePerSharePercentage" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_CarryingValueOfConvertibleNote" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainOnNoteConversion" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainFromNoteConversion" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_NonMarketableEquityInvestments" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_RegulatoryTaxAccruals" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AcquisitionTransactionBonuses" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_GoodwillLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="srt_RangeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseDescription" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeLeaseDescriptionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LeaseCost" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_FacilitiesConsolidationCharges" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LiabilitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="ooma_OperatingLeaseAsset" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiability" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeasePayments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiability" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="srt_RangeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_AwardTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="ooma_StockholdersEquityNoteDisclosureLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_4"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="4.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UnrecognizedTaxBenefits" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_NetIncomeLossAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_RangeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInSecondYear" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="ooma_CommitmentsAndContingenciesDisclosureLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyLossInPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_EurodollarMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_CreditAgreementMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LetterOfCreditMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_LineOfCreditFacilityTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_KeyBankCreditAgreementMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_FinancialInstrumentAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityDescription" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityLineItems" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_AwardTypeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="14" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GoodwillGross" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenuesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareBasic" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfRevenueAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingExpensesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationGainCharges" xlink:label="ooma_FacilitiesConsolidationGainCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_GainOnNoteConversion" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_FacilitiesConsolidationCharges" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_FacilitiesConsolidationGainCharges" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://xbrl.sec.gov/ecd/role/IndividualsOnly">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember" xlink:label="ecd_AllIndividualsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JamesAGustkeMember" xlink:label="ooma_JamesAGustkeMember"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_JamesAGustkeMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ProductConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaBusinessMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfSourcesOfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaResidentialMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerAMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="srt_MajorCustomersAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_MoneyMarketFundsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_FairValueNetAssetLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_ShortTermInvestmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_FinancialInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_CashAndCashEquivalentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ShortTermInvestments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="ooma_NonMarketableEquityInvestments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" xlink:label="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConversionPricePerSharePercentage" xlink:label="ooma_ConversionPricePerSharePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainFromNoteConversion" xlink:label="ooma_GainFromNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_BalanceSheetComponentsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ooma_EquityFinancingMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ooma_ConvertiblePromissoryNoteMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_PreferredStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ooma_GlobalTelecomCorporationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_InvestmentInPrivatelyHeldCompany" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_ConvertibleNoteReceivableFromRelatedParty" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_TypeOfArrangementAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_PurchaseObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_DebtInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_ConversionPricePerSharePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_CarryingValueOfConvertibleNote" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainOnNoteConversion" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainFromNoteConversion" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_NonMarketableEquityInvestments" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LeaseCost" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_FacilitiesConsolidationCharges" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInSecondYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyLossInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_EurodollarMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_CreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LetterOfCreditMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_KeyBankCreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_FinancialInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GoodwillGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" priority="2" use="optional"/>
        </link:definitionLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapital" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebt" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingExpenses" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="2" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="3" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_FacilitiesConsolidationGainCharges" order="6" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_FacilitiesConsolidationCharges" order="7" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_GainOnNoteConversion" order="9" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="9" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" order="17" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="18" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="19" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="20" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" order="21" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" order="22" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:label="us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationGainCharges" xlink:label="ooma_FacilitiesConsolidationGainCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="ooma_DeferredSalesCommissionsCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="ooma_DeferredSalesCommissionsNonCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="ooma_ConvertibleNoteReceivableFromRelatedParty" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_ConvertibleNoteReceivableFromRelatedParty" xlink:label="ooma_ConvertibleNoteReceivableFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AcquisitionTransactionBonuses" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_RegulatoryTaxAccruals" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent" order="5" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="6" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="6" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_OperatingLeaseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_OperatingLeaseLiability" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" order="4" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" order="5" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" order="6" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="7" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_GoodwillGross" order="8" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="9" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20240731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
        </link:calculationLink>
      </link:linkbase>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="ooma_NonMarketableEquityInvestments" name="NonMarketableEquityInvestments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_BusinessAcquisitionsAndDivestituresAbstract" name="BusinessAcquisitionsAndDivestituresAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NumberOfSourcesOfRevenue" name="NumberOfSourcesOfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" name="TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_CommitmentsAndContingenciesDisclosureLineItems" name="CommitmentsAndContingenciesDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" name="SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_GlobalTelecomCorporationMember" name="GlobalTelecomCorporationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" name="ScheduleOfStockholdersEquityNoteDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_GainFromNoteConversion" name="GainFromNoteConversion" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" name="BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_ProductAndOtherRevenueMember" name="ProductAndOtherRevenueMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_InvestmentInPrivatelyHeldCompany" name="InvestmentInPrivatelyHeldCompany" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" name="OutstandingPrincipalAndUnpaidInterestsConvertedToShares" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ooma_DeferredSalesCommissionsCurrent" name="DeferredSalesCommissionsCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_BalanceSheetComponentsLineItems" name="BalanceSheetComponentsLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_StockholdersEquityNoteDisclosureLineItems" name="StockholdersEquityNoteDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SubscriptionAndServicesMember" name="SubscriptionAndServicesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_EarningsPerShareBasicDilutedAbstract" name="EarningsPerShareBasicDilutedAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OomaBusinessMember" name="OomaBusinessMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_DeferredSalesCommissionsNonCurrent" name="DeferredSalesCommissionsNonCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_CreditAgreementMember" name="CreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" name="SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_CarryingValueOfConvertibleNote" name="CarryingValueOfConvertibleNote" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" name="PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" name="EarningsPerShareBasicDilutedOtherDisclosuresAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" name="BusinessAcquisitionsAndDivestituresDisclosureTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" name="InterestAndOtherIncomeExpenseNonoperatingNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_CustomerAMember" name="CustomerAMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_JunctionNetworksIncMember" name="JunctionNetworksIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OomaResidentialMember" name="OomaResidentialMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SubscriptionAndServicesRevenueMember" name="SubscriptionAndServicesRevenueMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BalanceSheetComponentsAbstract" name="BalanceSheetComponentsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OperatingLeaseAsset" name="OperatingLeaseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_AccruedCustomerRelatedLiabilitiesCurrent" name="AccruedCustomerRelatedLiabilitiesCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_FacilitiesConsolidationCharges" name="FacilitiesConsolidationCharges" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" name="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_TwoThousandSixHundredHzIncMember" name="TwoThousandSixHundredHzIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" name="NonCancelableServiceAgreementWithTelecommunicationsProviderMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" name="PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_JamesAGustkeMember" name="JamesAGustkeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_FacilitiesConsolidationGainCharges" name="FacilitiesConsolidationGainCharges" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" name="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_ConversionPricePerSharePercentage" name="ConversionPricePerSharePercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" name="IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" name="NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_ConvertibleNoteReceivableFromRelatedParty" name="ConvertibleNoteReceivableFromRelatedParty" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" name="LesseeOperatingLeaseExpirationDateEndingPeriod" type="xbrli:gYearItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_RegulatoryTaxAccruals" name="RegulatoryTaxAccruals" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_OnsipMember" name="OnsipMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BalanceSheetComponentsTable" name="BalanceSheetComponentsTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" name="NumberOfCustomersThatIndividuallyExceeded10OfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" name="MaximumOpenMarketRepurchasesOfEquityInterests" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_ComprehensiveIncomeLossPolicyTextBlock" name="ComprehensiveIncomeLossPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_AccruedExpensesAndOtherCurrentLiabilities" name="AccruedExpensesAndOtherCurrentLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_RemainingOperatingLeaseLiabilityWroteOff" name="RemainingOperatingLeaseLiabilityWroteOff" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_AcquisitionTransactionBonuses" name="AcquisitionTransactionBonuses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_EquityFinancingMember" name="EquityFinancingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_CommitmentsAndContingenciesDisclosureTable" name="CommitmentsAndContingenciesDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" name="NonCancelableServiceAgreementWithCloudServiceProviderMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SignificantAccountingPoliciesPolicyTextBlock" name="SignificantAccountingPoliciesPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_ConvertiblePromissoryNoteMember" name="ConvertiblePromissoryNoteMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_FiscalYearEndPolicyTextBlock" name="FiscalYearEndPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_GainOnNoteConversion" name="GainOnNoteConversion" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_KeyBankCreditAgreementMember" name="KeyBankCreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593720304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - shares<br> shares in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Aug. 30, 2024</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>
</tr>
<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-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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">Jul. 31,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">OOMA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">Ooma, Inc.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">0001327688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--01-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26.8<span></span>
</td>
</tr>
<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_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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>
</tr>
<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-37493<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">06-1713274<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">525 Almanor Avenue<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Sunnyvale<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">94085<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_CityAreaCode', window );">City Area Code</a></td>
<td class="text">650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">566-6600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" 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<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NYSE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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>
</tr>
<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>
</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_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_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 quarterly 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-Q<br> -Number 240<br> -Section 308<br> -Subsection 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;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 2 such as Street or Suite 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;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_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>11
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593835280">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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">$ 16,585<span></span>
</td>
<td class="nump">$ 17,536<span></span>
</td>
</tr>
<tr class="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, net</a></td>
<td class="nump">8,189<span></span>
</td>
<td class="nump">9,864<span></span>
</td>
</tr>
<tr class="ro">
<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">15,237<span></span>
</td>
<td class="nump">19,782<span></span>
</td>
</tr>
<tr class="re">
<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 );">Other current assets</a></td>
<td class="nump">15,559<span></span>
</td>
<td class="nump">16,497<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_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">55,570<span></span>
</td>
<td class="nump">63,679<span></span>
</td>
</tr>
<tr class="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">10,957<span></span>
</td>
<td class="nump">9,897<span></span>
</td>
</tr>
<tr class="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 );">Operating lease right-of-use assets</a></td>
<td class="nump">15,833<span></span>
</td>
<td class="nump">17,041<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">24,997<span></span>
</td>
<td class="nump">27,952<span></span>
</td>
</tr>
<tr class="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">23,069<span></span>
</td>
<td class="nump">23,069<span></span>
</td>
</tr>
<tr class="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 assets</a></td>
<td class="nump">21,044<span></span>
</td>
<td class="nump">17,615<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">151,470<span></span>
</td>
<td class="nump">159,253<span></span>
</td>
</tr>
<tr class="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">6,967<span></span>
</td>
<td class="nump">7,848<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_ooma_AccruedExpensesAndOtherCurrentLiabilities', window );">Accrued expenses and other current liabilities</a></td>
<td class="nump">24,388<span></span>
</td>
<td class="nump">26,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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">17,123<span></span>
</td>
<td class="nump">17,041<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">48,478<span></span>
</td>
<td class="nump">51,475<span></span>
</td>
</tr>
<tr class="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 operating lease liabilities</a></td>
<td class="nump">12,635<span></span>
</td>
<td class="nump">13,676<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Debt, net of current portion</a></td>
<td class="nump">8,500<span></span>
</td>
<td class="nump">16,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_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, non-current</a></td>
<td class="nump">18<span></span>
</td>
<td class="nump">15<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">69,631<span></span>
</td>
<td class="nump">81,166<span></span>
</td>
</tr>
<tr class="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 11)</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_CommonStockValue', window );">Common stock</a></td>
<td class="nump">5<span></span>
</td>
<td class="nump">5<span></span>
</td>
</tr>
<tr class="re">
<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">219,388<span></span>
</td>
<td class="nump">211,361<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(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_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(137,554)<span></span>
</td>
<td class="num">(133,278)<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">81,839<span></span>
</td>
<td class="nump">78,087<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">$ 151,470<span></span>
</td>
<td class="nump">$ 159,253<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_AccruedExpensesAndOtherCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued expenses and other current 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;">ooma_AccruedExpensesAndOtherCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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://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(19)(a))<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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<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_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_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</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 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14A<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 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<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 (g)(2)(ii)<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 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 5: 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(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: 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)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-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_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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/2147479170/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_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>Amount of asset recognized for present right to economic 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/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 6: 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 7: 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 8: 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 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(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: 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 11: 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 12: 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 13: 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/2147479168/946-830-55-12<br><br>Reference 14: 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/2147478777/944-210-S99-1<br><br>Reference 15: 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/2147479170/946-210-S99-1<br><br>Reference 16: 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 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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 19: 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 20: 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 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)(iv))<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)(5))<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 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 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)(iii)(A))<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)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: 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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: 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/2147478546/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>Amount of asset recognized for present right to economic benefit, 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 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://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(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-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(25))<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 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/2147478777/944-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 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-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_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://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 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)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-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_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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 asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is 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 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<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/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: 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 5: 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 6: 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 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 (a)<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 (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: 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/2147478546/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_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-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_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</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://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(20))<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(24))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-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(25))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-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(21))<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 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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/2147479168/946-830-55-12<br><br>Reference 16: 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/2147479170/946-210-S99-1<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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<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 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 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)(5))<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 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 23: 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 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)(iii)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: 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 28: 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 29: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2147478777/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/2147478546/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://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(21))<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 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 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)(ii))<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><br>Reference 21: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease 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 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/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<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/2147478546/942-210-S99-1<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 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 5: 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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 7: 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/2147478777/944-210-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-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_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: 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 4: 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/2147478777/944-210-S99-1<br><br>Reference 5: 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/2147478451/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_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://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><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 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 4: 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 5: 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 6: 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/2147478777/944-210-S99-1<br><br>Reference 7: 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/2147479170/946-210-S99-1<br><br>Reference 8: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://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 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(30))<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(31))<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/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 5: 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/2147479168/946-830-55-12<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(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: 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/2147479170/946-210-S99-2<br><br>Reference 8: 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/2147479134/946-220-S99-3<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 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: 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/2147479134/946-220-S99-3<br><br>Reference 11: 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 12: 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 13: 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 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593326960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_RevenuesAbstract', window );"><strong>Revenue:</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 64,129<span></span>
</td>
<td class="nump">$ 58,353<span></span>
</td>
<td class="nump">$ 126,628<span></span>
</td>
<td class="nump">$ 115,205<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</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_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">25,429<span></span>
</td>
<td class="nump">21,765<span></span>
</td>
<td class="nump">49,813<span></span>
</td>
<td class="nump">42,665<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_GrossProfit', window );">Gross profit</a></td>
<td class="nump">38,700<span></span>
</td>
<td class="nump">36,588<span></span>
</td>
<td class="nump">76,815<span></span>
</td>
<td class="nump">72,540<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">19,256<span></span>
</td>
<td class="nump">18,842<span></span>
</td>
<td class="nump">38,737<span></span>
</td>
<td class="nump">36,832<span></span>
</td>
</tr>
<tr class="ro">
<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">13,640<span></span>
</td>
<td class="nump">11,768<span></span>
</td>
<td class="nump">27,433<span></span>
</td>
<td class="nump">23,721<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">7,400<span></span>
</td>
<td class="nump">5,972<span></span>
</td>
<td class="nump">14,978<span></span>
</td>
<td class="nump">12,589<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_OperatingExpenses', window );">Total operating expenses</a></td>
<td class="nump">40,296<span></span>
</td>
<td class="nump">36,582<span></span>
</td>
<td class="nump">81,148<span></span>
</td>
<td class="nump">73,142<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_OperatingIncomeLoss', window );">(Loss) income from operations</a></td>
<td class="num">(1,596)<span></span>
</td>
<td class="nump">6<span></span>
</td>
<td class="num">(4,333)<span></span>
</td>
<td class="num">(602)<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_ooma_InterestAndOtherIncomeExpenseNonoperatingNet', window );">Interest and other (expense) income, net</a></td>
<td class="num">(103)<span></span>
</td>
<td class="nump">532<span></span>
</td>
<td class="nump">820<span></span>
</td>
<td class="nump">947<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) income before income taxes</a></td>
<td class="num">(1,699)<span></span>
</td>
<td class="nump">538<span></span>
</td>
<td class="num">(3,513)<span></span>
</td>
<td class="nump">345<span></span>
</td>
</tr>
<tr class="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 );">Income tax provision</a></td>
<td class="num">(438)<span></span>
</td>
<td class="num">(267)<span></span>
</td>
<td class="num">(763)<span></span>
</td>
<td class="num">(400)<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) income</a></td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="nump">$ 271<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
<td class="num">$ (55)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_EarningsPerShareBasicDilutedAbstract', window );"><strong>Net (loss) income per share of common stock:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net (loss) income per share of common stock, Basic</a></td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="num">$ (0.16)<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_EarningsPerShareDiluted', window );">Net (loss) income per share of common stock, Diluted</a></td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="num">$ (0.16)<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_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted-average shares of common stock outstanding:</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares of common stock outstanding, Basic</a></td>
<td class="nump">26,556,754<span></span>
</td>
<td class="nump">25,330,545<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
<td class="nump">25,327,255<span></span>
</td>
</tr>
<tr class="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 shares of common stock outstanding, Diluted</a></td>
<td class="nump">26,556,754<span></span>
</td>
<td class="nump">25,935,018<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
<td class="nump">25,327,255<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=ooma_SubscriptionAndServicesRevenueMember', window );">Subscription and services</a></td>
<td class="text">&#160;<span></span>
</td>
<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>Revenue:</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 59,566<span></span>
</td>
<td class="nump">$ 54,726<span></span>
</td>
<td class="nump">$ 117,955<span></span>
</td>
<td class="nump">$ 107,775<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</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_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">17,654<span></span>
</td>
<td class="nump">15,456<span></span>
</td>
<td class="nump">35,114<span></span>
</td>
<td class="nump">30,181<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=ooma_ProductAndOtherRevenueMember', window );">Product and other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Revenue:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">4,563<span></span>
</td>
<td class="nump">3,627<span></span>
</td>
<td class="nump">8,673<span></span>
</td>
<td class="nump">7,430<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">$ 7,775<span></span>
</td>
<td class="nump">$ 6,309<span></span>
</td>
<td class="nump">$ 14,699<span></span>
</td>
<td class="nump">$ 12,484<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_EarningsPerShareBasicDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">ooma_EarningsPerShareBasicDilutedAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_InterestAndOtherIncomeExpenseNonoperatingNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of nonoperating interest and other income (expense).</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;">ooma_InterestAndOtherIncomeExpenseNonoperatingNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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://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)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<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))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CostOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CostOfRevenueAbstract</td>
</tr>
<tr>
<td style="padding-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_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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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/2147478524/942-220-S99-1<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: 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 14: 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 15: 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 16: 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 17: 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/2147478524/942-220-S99-1<br><br>Reference 18: 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/2147477250/944-220-S99-1<br><br>Reference 19: 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_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="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><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)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/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_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="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 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/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<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 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 8: 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))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<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(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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 11: 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 12: 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 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)(i))<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)(ii))<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/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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/2009/role/commonPracticeRef<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/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<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 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 8: 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/2147477250/944-220-S99-1<br><br>Reference 9: 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 10: 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/2147477314/942-235-S99-1<br><br>Reference 11: 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 12: 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/2147478524/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 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-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 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<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 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<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 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: 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 7: 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 8: 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 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> -Subparagraph (h)<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 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/2147477250/944-220-S99-1<br><br>Reference 11: 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 12: 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_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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/2147479168/946-830-55-10<br><br>Reference 18: 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/2147479105/946-220-45-7<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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/2147479134/946-220-S99-1<br><br>Reference 21: 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/2147479134/946-220-S99-3<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: 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 25: 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 26: 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 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)(i))<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)(4)(iii)(A))<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 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 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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/2147478524/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_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="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_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<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 3: http://www.xbrl.org/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<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 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 3: 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 4: 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/2147479532/912-730-25-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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of expenses directly related to the marketing or selling of products or services.</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_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-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_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=ooma_SubscriptionAndServicesRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_SubscriptionAndServicesRevenueMember</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=ooma_ProductAndOtherRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_ProductAndOtherRevenueMember</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>13
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308594379072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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">$ (4,276)<span></span>
</td>
<td class="num">$ (55)<span></span>
</td>
</tr>
<tr class="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 operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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 expense</a></td>
<td class="nump">8,958<span></span>
</td>
<td class="nump">7,124<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAmortizationAndAccretionNet', window );">Depreciation and amortization of capital expenditures</a></td>
<td class="nump">2,073<span></span>
</td>
<td class="nump">2,188<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">2,955<span></span>
</td>
<td class="nump">1,433<span></span>
</td>
</tr>
<tr class="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 operating lease right-of-use assets</a></td>
<td class="nump">1,517<span></span>
</td>
<td class="nump">1,460<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_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></td>
<td class="num">(980)<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_ooma_FacilitiesConsolidationGainCharges', window );">Facilities consolidation gain</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(956)<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">108<span></span>
</td>
<td class="num">(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_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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable, net</a></td>
<td class="nump">1,675<span></span>
</td>
<td class="num">(1,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_IncreaseDecreaseInInventories', window );">Inventories and deferred inventory costs</a></td>
<td class="nump">4,527<span></span>
</td>
<td class="nump">3,347<span></span>
</td>
</tr>
<tr class="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">(1,571)<span></span>
</td>
<td class="num">(1,485)<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_ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities', window );">Accounts payable, accrued expenses and other liabilities</a></td>
<td class="num">(4,399)<span></span>
</td>
<td class="num">(6,896)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">85<span></span>
</td>
<td class="nump">161<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 operating activities</a></td>
<td class="nump">10,672<span></span>
</td>
<td class="nump">4,836<span></span>
</td>
</tr>
<tr class="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>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments', window );">Proceeds from maturities of short-term investments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,250<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Capital expenditures</a></td>
<td class="num">(3,192)<span></span>
</td>
<td class="num">(3,518)<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_ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Business acquisition, working capital adjustments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<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">(3,192)<span></span>
</td>
<td class="num">(968)<span></span>
</td>
</tr>
<tr class="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>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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</a></td>
<td class="nump">1,584<span></span>
</td>
<td class="nump">1,888<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Payments for repurchases of common stock</a></td>
<td class="num">(891)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermDebt', window );">Repayments of long-term debt</a></td>
<td class="num">(7,500)<span></span>
</td>
<td class="text">&#160;<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_NetCashProvidedByUsedInFinancingActivities', window );">Net cash (used in) provided by financing activities</a></td>
<td class="num">(8,431)<span></span>
</td>
<td class="nump">974<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net (decrease) increase in cash and cash equivalents</a></td>
<td class="num">(951)<span></span>
</td>
<td class="nump">4,842<span></span>
</td>
</tr>
<tr class="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 and cash equivalents at beginning of period</a></td>
<td class="nump">17,536<span></span>
</td>
<td class="nump">24,137<span></span>
</td>
</tr>
<tr class="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 and cash equivalents at end of period</a></td>
<td class="nump">16,585<span></span>
</td>
<td class="nump">28,979<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 );">Restricted Stock Units (RSUs)</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_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</a></td>
<td class="num">$ (1,624)<span></span>
</td>
<td class="num">$ (914)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business combination consideration transferred working capital 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;">ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_FacilitiesConsolidationGainCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Facilities consolidation gain (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;">ooma_FacilitiesConsolidationGainCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_GainOnNoteConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gain on note conversion.</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;">ooma_GainOnNoteConversion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accounts payable accrued expenses and 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;">ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-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_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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/2147477401/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_DepreciationAmortizationAndAccretionNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 net amount of depreciation, amortization, and accretion recognized during an accounting period. As a noncash item, the net amount is added back to net income when calculating cash provided by or used in operations using the indirect method.</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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAmortizationAndAccretionNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="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_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred income and obligation to transfer product and 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/exampleRef<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_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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/2147479168/946-830-55-10<br><br>Reference 18: 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/2147479105/946-220-45-7<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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/2147479134/946-220-S99-1<br><br>Reference 21: 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/2147479134/946-220-S99-3<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: 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 25: 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 26: 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 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)(i))<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)(4)(iii)(A))<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 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 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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/2147478524/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_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_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_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 to reacquire common stock 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> -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_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.</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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<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_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 debt initially having maturity due after one year or beyond 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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<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(i)(2))<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_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593835152">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common stock and APIC</div></th>
<th class="th"><sup>[1]</sup></th>
<th class="th"><div>AOCL</div></th>
<th class="th"><sup>[2]</sup></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_StockholdersEquity', window );">BALANCE at Jan. 31, 2023</a></td>
<td class="nump">$ 63,144<span></span>
</td>
<td colspan="2" class="nump">$ 195,610<span></span>
</td>
<td colspan="2" class="num">$ (23)<span></span>
</td>
<td class="num">$ (132,443)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="nump">1,724<span></span>
</td>
<td colspan="2" class="nump">1,724<span></span>
</td>
<td colspan="2" 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 );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="num">(431)<span></span>
</td>
<td colspan="2" class="num">(431)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Stock-based compensation</a></td>
<td class="nump">3,500<span></span>
</td>
<td colspan="2" class="nump">3,500<span></span>
</td>
<td colspan="2" 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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Changes in other comprehensive loss</a></td>
<td class="nump">12<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">12<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 Income (Loss)</a></td>
<td class="num">(326)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(326)<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 Apr. 30, 2023</a></td>
<td class="nump">67,623<span></span>
</td>
<td colspan="2" class="nump">200,403<span></span>
</td>
<td colspan="2" class="num">(11)<span></span>
</td>
<td class="num">(132,769)<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 Jan. 31, 2023</a></td>
<td class="nump">63,144<span></span>
</td>
<td colspan="2" class="nump">195,610<span></span>
</td>
<td colspan="2" class="num">(23)<span></span>
</td>
<td class="num">(132,443)<span></span>
</td>
</tr>
<tr class="re">
<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 Income (Loss)</a></td>
<td class="num">(55)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" 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 Jul. 31, 2023</a></td>
<td class="nump">71,205<span></span>
</td>
<td colspan="2" class="nump">203,708<span></span>
</td>
<td colspan="2" class="num">(5)<span></span>
</td>
<td class="num">(132,498)<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 Apr. 30, 2023</a></td>
<td class="nump">67,623<span></span>
</td>
<td colspan="2" class="nump">200,403<span></span>
</td>
<td colspan="2" class="num">(11)<span></span>
</td>
<td class="num">(132,769)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="nump">164<span></span>
</td>
<td colspan="2" class="nump">164<span></span>
</td>
<td colspan="2" 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 );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="num">(483)<span></span>
</td>
<td colspan="2" class="num">(483)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Stock-based compensation</a></td>
<td class="nump">3,624<span></span>
</td>
<td colspan="2" class="nump">3,624<span></span>
</td>
<td colspan="2" 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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Changes in other comprehensive loss</a></td>
<td class="nump">6<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 Income (Loss)</a></td>
<td class="nump">271<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">271<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 Jul. 31, 2023</a></td>
<td class="nump">71,205<span></span>
</td>
<td colspan="2" class="nump">203,708<span></span>
</td>
<td colspan="2" class="num">(5)<span></span>
</td>
<td class="num">(132,498)<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 Jan. 31, 2024</a></td>
<td class="nump">78,087<span></span>
</td>
<td colspan="2" class="nump">211,366<span></span>
</td>
<td colspan="2" class="num">(1)<span></span>
</td>
<td class="num">(133,278)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="nump">1,417<span></span>
</td>
<td colspan="2" class="nump">1,417<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="num">(740)<span></span>
</td>
<td colspan="2" class="num">(740)<span></span>
</td>
<td colspan="2" 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 );">Stock-based compensation</a></td>
<td class="nump">4,363<span></span>
</td>
<td colspan="2" class="nump">4,363<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 Income (Loss)</a></td>
<td class="num">(2,139)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(2,139)<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 Apr. 30, 2024</a></td>
<td class="nump">80,988<span></span>
</td>
<td colspan="2" class="nump">216,406<span></span>
</td>
<td colspan="2" class="num">(1)<span></span>
</td>
<td class="num">(135,417)<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 Jan. 31, 2024</a></td>
<td class="nump">78,087<span></span>
</td>
<td colspan="2" class="nump">211,366<span></span>
</td>
<td colspan="2" class="num">(1)<span></span>
</td>
<td class="num">(133,278)<span></span>
</td>
</tr>
<tr class="re">
<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 Income (Loss)</a></td>
<td class="num">(4,276)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" 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 Jul. 31, 2024</a></td>
<td class="nump">81,839<span></span>
</td>
<td colspan="2" class="nump">219,393<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(137,554)<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 Apr. 30, 2024</a></td>
<td class="nump">80,988<span></span>
</td>
<td colspan="2" class="nump">216,406<span></span>
</td>
<td colspan="2" class="num">(1)<span></span>
</td>
<td class="num">(135,417)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="nump">167<span></span>
</td>
<td colspan="2" class="nump">167<span></span>
</td>
<td colspan="2" 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 );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="num">(884)<span></span>
</td>
<td colspan="2" class="num">(884)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Stock-based compensation</a></td>
<td class="nump">4,595<span></span>
</td>
<td colspan="2" class="nump">4,595<span></span>
</td>
<td colspan="2" 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_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="num">(891)<span></span>
</td>
<td colspan="2" class="num">(891)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Changes in other comprehensive loss</a></td>
<td class="nump">1<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">$ 1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 Income (Loss)</a></td>
<td class="num">(2,137)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(2,137)<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 Jul. 31, 2024</a></td>
<td class="nump">$ 81,839<span></span>
</td>
<td colspan="2" class="nump">$ 219,393<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">$ (137,554)<span></span>
</td>
</tr>
<tr><td colspan="7"></td></tr>
<tr><td colspan="7"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Additional paid-in capital</span></td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Accumulated other comprehensive loss</span></td>
</tr>
</table></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_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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/2147479168/946-830-55-10<br><br>Reference 18: 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/2147479105/946-220-45-7<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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/2147479134/946-220-S99-1<br><br>Reference 21: 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/2147479134/946-220-S99-3<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: 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 25: 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 26: 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 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)(i))<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)(4)(iii)(A))<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 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 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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/2147478524/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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax of other comprehensive income (loss) attributable to parent 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> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 5: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</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(28))<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(29))<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 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 4: 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 (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_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury 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> -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 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> -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 4: 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/2147479168/946-830-55-11<br><br>Reference 5: 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/2147478009/946-205-45-4<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 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<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(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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://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 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(30))<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(31))<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/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 5: 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/2147479168/946-830-55-12<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(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: 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/2147479170/946-210-S99-2<br><br>Reference 8: 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/2147479134/946-220-S99-3<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 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: 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/2147479134/946-220-S99-3<br><br>Reference 11: 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 12: 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 13: 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 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>15
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587744320">
<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="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Apr. 30, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 Income (Loss)</a></td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="num">$ (2,139)<span></span>
</td>
<td class="nump">$ 271<span></span>
</td>
<td class="num">$ (326)<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
<td class="num">$ (55)<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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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/2147479168/946-830-55-10<br><br>Reference 18: 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/2147479105/946-220-45-7<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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/2147479134/946-220-S99-1<br><br>Reference 21: 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/2147479134/946-220-S99-3<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: 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 25: 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 26: 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 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)(i))<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)(4)(iii)(A))<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 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 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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/2147478524/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>16
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308594705856">
<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>Jul. 31, 2024 </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_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_MtrlTermsOfTrdArrTextBlock', window );">Material Terms of Trading Arrangement</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Insider Adoption or Termination of Trading Arrangements</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">June 27, 2024</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">James A. Gustke</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, our </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Senior Vice President</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, Marketing, </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adopted</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> a Rule 10b5-1 Trading Arrangement (as that term is defined in Regulation S-K, Item 408) providing for the sale from time to time of up to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18,656</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> shares of our common stock. The trading arrangement is intended to satisfy the affirmative defense in Rule 10b5-1(c). The duration of the trading arrangement is until </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">September 27, 2025</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, or earlier if all transactions under the trading arrangement are completed.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">No other directors or officers, as defined in Rule 16a-1(f), </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">adopted</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and/or </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">terminated</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> a &#8220;Rule 10b5-1 trading arrangement&#8221; or a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; each as defined in Regulation S-K Item 408, during the fiscal quarter ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">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_NonRule10b51ArrAdoptedFlag', window );">Non-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_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</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_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<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_ecd_IndividualAxis=ooma_JamesAGustkeMember', window );">James A. Gustke</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_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</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_ecd_TrdArrIndName', window );">Name</a></td>
<td class="text">James A. Gustke<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_TrdArrIndTitle', window );">Title</a></td>
<td class="text">Senior Vice President<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_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">true<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_TrdArrAdoptionDate', window );">Adoption Date</a></td>
<td class="text">June 27, 2024<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_TrdArrExpirationDate', window );">Expiration Date</a></td>
<td class="text">September 27, 2025<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_TrdArrSecuritiesAggAvailAmt', window );">Aggregate Available</a></td>
<td class="nump">18,656<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_MtrlTermsOfTrdArrTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MtrlTermsOfTrdArrTextBlock</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>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrAdoptionDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 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;">ecd_TrdArrAdoptionDate</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_ecd_TrdArrExpirationDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 C<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_TrdArrExpirationDate</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_ecd_TrdArrIndName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TrdArrIndName</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_ecd_TrdArrIndTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TrdArrIndTitle</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_ecd_TrdArrSecuritiesAggAvailAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_TrdArrSecuritiesAggAvailAmt</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: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_ecd_IndividualAxis=ooma_JamesAGustkeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">ecd_IndividualAxis=ooma_JamesAGustkeMember</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>17
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588382320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Overview and Basis of Presentation</a></td>
<td class="text"><p id="notes_to_condensed_consolidated_fs" style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">N</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">ote 1:  Overview and Basis of Presentation</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#8220;Ooma&#8221; or the &#8220;Company&#8221;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Fiscal Year.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company&#8217;s fiscal year ends on January 31. References to fiscal 2025 and fiscal 2024 refer to the fiscal years ended January 31, 2025 and January 31, 2024, respectively.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Basis of Presentation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2024 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended January 31, 2024 filed with the SEC on April 2, 2024 (&#8220;Annual Report&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2024 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Principles of Consolidation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Comprehensive Loss. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">For all periods presented, comprehensive loss approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive loss have been omitted.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Use of Estimates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#8217;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#8217;s estimates.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Significant Accounting Policies. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">There have been no material changes to the Company&#8217;s significant accounting policies from those disclosed in the Annual Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) 2023-07, which is intended to improve reportable segment disclosure requirements, primarily through additional 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 amendments should be applied retrospectively to all prior periods presented in the financial statements. The Company is evaluating the new standard.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is evaluating the new standard.</span></p></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_BusinessDescriptionAndBasisOfPresentationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="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 205<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205/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_BusinessDescriptionAndBasisOfPresentationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686574720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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 and Deferred Revenue</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 2:  Revenue and Deferred Revenue</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company derives its revenue from </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> sources:</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Subscription and Services Revenue</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Product and Other Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">59,566</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">54,726</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">117,955</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">107,775</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,563</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,627</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,673</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,430</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">64,129</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">58,353</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">126,628</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">115,205</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">61</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">57</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">36</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">41</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> from Ooma Residential for the three months ended July 31, 2024 and 2023, respectively. The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">61</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">56</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">37</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">41</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> from Ooma Residential for the six months ended July 31, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, respectively. </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> individual country outside of the United States, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> single customer, represented 10% or more of total revenue for the periods presented.</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.42%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.34%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.22%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.22%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer A</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">33</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td colspan="9" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><div style="font-size:12pt;font-family:Arial;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.791%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.683%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.222%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.222%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,131</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,034</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">22</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,141</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,056</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: current deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,123</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During the three and six months ended July 31, 2024, the Company recognized revenue of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively pertaining to amounts deferred as of January 31, 2024. As of July 31, 2024, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2025, as well as amounts recorded during fiscal 2024 for annual contracts.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Remaining Performance Obligations.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">34.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. The Company expects to recognize revenue on approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">41</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of this amount over the next </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">12 months</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, with the balance to be recognized thereafter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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>19
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588384528">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 3: Fair Value Measurements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company estimates and categorizes fair value by applying the following hierarchy:</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Level 3:	Unobservable inputs that are supported by little or no market activity.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash and cash equivalents as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024 and January 31, 2024, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Non-Marketable Equity Investments. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. This balance represents investments in preferred shares of Global Telecom Corporation (&#8220;GTC&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company&#8217;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-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_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686479136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_ooma_BalanceSheetComponentsAbstract', window );"><strong>Balance Sheet Components [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 Components</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 4: Balance Sheet Components</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:top;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Finished goods</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,033</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Raw materials</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,204</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,758</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total inventory</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,237</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">19,782</span></p></td>
       </tr>
      </table></div><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9,060</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,579</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Prepaid expenses and other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,712</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,177</span></p></td>
       </tr>
       <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Convertible note receivable (see "GTC" below)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:11pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,257</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,787</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,484</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,559</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,497</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,092</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,257</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,952</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,358</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other non-current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21,044</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,615</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Customer Acquisition Costs</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> Amortization of deferred sales commissions was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three months ended July 31, 2024 and 2023, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2024 and 2023, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Global Telecom Corporation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> In December 2018, the Company invested $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash in GTC, a privately-held technology company, in exc</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#8217;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2024, the Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in non-cancelable inventory purchase commitments to GTC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. Per the terms of the note, in the event of an equity financing all of the outstanding principal and accrued but unpaid interest would be converted to a number of shares of standard preferred stock equal to the Conversion Amount divided by the Conversion Price. "Conversion Amount" is defined as outstanding principal plus unpaid accrued interest. "Conversion Price" is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">70</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% of the per share price for the preferred stock. As of the Financing Date, the carrying value of the convertible promissory note of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, including accrued interest, was converted to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million shares of preferred stock of GTC. Upon the conversion event, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">GTC is no longer a variable interest entity for accounting purposes. T</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">he Company recorded a gain on note conversion of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million to other income </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">in the condensed consolidated statements of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> The Company recorded the fair value of GTC preferred stock of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024 to other assets in the condensed consolidated balance sheets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Payroll and related expenses</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,737</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,301</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,475</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,598</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834;"><span style="-sec-ix-hidden:F_cdb13912-9734-4f23-8fba-675ba3625e01;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,710</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer-related liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,365</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,118</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,101</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,827</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,388</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,586</span></p></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_ooma_BalanceSheetComponentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</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;">ooma_BalanceSheetComponentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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>21
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587795888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets, Net (Excluding Goodwill) [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_IntangibleAssetsDisclosureTextBlock', window );">Acquired Intangible Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 5: Acquired Intangible Assets</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:20.631%;"></td>
        <td style="width:1.019%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:7.41%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:8.708%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:8.708%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:8.708%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of January 31, 2024</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
       </tr>
       <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Developed technology</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">20,618</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,277</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,341</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">20,618</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,865</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,753</span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer relationships</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,733</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,812</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,336</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9,209</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Trade names</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-</span><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,685</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">841</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">844</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,685</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">695</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">990</span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total intangible assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">38,848</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13,851</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,997</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">38,848</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,896</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">27,952</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Amortization expense was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for each of the three months ended July 31, 2024 and 2023, respectively, and was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for each of the six months ended July 31, 2024 and 2023, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.69%;"></td>
        <td style="width:2.42%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:17.497%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:23.535%;"></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,812</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,624</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,068</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,950</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,030</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,513</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,997</span></p></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_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all or part of the information related to intangible 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 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/985-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_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-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>22
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308695594048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_LeasesAbstract', window );"><strong>Leases [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_LesseeOperatingLeasesTextBlock', window );">Operating Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 6:  Operating Leases</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">2033</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">.</span></span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,833</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,833</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,710</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,635</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13,676</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,345</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,418</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.6</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6.0</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average discount rate</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.2</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company incurred total lease costs in its condensed consolidated statements of operations of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three months ended July 31, 2024 and 2023, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2024 and 2023, respectively. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Additionally, in the third quarter of fiscal 2023, the Company recorded facilities consolidation charges of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million to general and administrative expense, in connection with the leased office facilities assumed during the second fiscal quarter of 2023 in the Company's acquisition of Junction Networks, Inc. ("OnSIP"), which the Company subsequently determined were not needed to support the future growth of its business. In the second quarter of fiscal 2024, upon the lessor's sale of the property, the Company wrote off the remaining $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million lease liability related to the lease as facilities consolidation gain in general and administrative expense in the condensed consolidated statements of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.567%;"></td>
        <td style="width:1.061%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;word-break:break-word;">
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash payments for operating leases</span></p></td>
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">958</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,131</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,909</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,028</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">310</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,902</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31, 2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,935</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,810</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,969</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,720</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,630</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total future minimum lease payments</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">19,806</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: imputed interest</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,461</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,345</span></p></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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-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_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="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> -Publisher FASB<br> -URI https://asc.fasb.org/842-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_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686581424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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 );">Stockholders' Equity</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 7: Stockholders&#8217; Equity</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan, pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (&#8220;ESPP&#8221;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock option activity for the six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span></p></div><div style="font-size:10pt;font-family:Arial;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:52.089%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Aggregate</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Exercise Price</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Intrinsic Value</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Per Share</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,161</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.14</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,522</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Exercised</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">39</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.99</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.24</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,118</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.28</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,040</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested and exercisable as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,057</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.92</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,040</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2024 and 2023 was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> stock options granted during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2024 and 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Restricted Stock Units.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span></span></p><div style="font-size:10pt;font-family:Arial;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:62.032%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:15.543%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:15.543%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,075</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.74</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,114</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.68</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">703</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12.77</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.24</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,465</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.73</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.</span></p></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Employee Stock Purchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During each of the six months ended July 31, 2024 and 2023, employees purchased </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million shares at a weighted-average price of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.35</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;">10.60</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> per share, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock Repurchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In June 2024, the Company's Board of Directors authorized a stock repurchase plan of repurchasing up to $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of the Company's common stock. Repurchases of our common stock may be effected, from time to time, in open market, negotiated or block transactions, or other means, in accordance with applicable securities laws. The timing and the amount of any repurchased common stock will be determined by our management based on its evaluation of market conditions and other factors. The repurchase plan will be funded using our cash. Any repurchased shares of common stock will be retired. The plan does not obligate us to repurchase any specific dollar amount or to acquire any specific number of shares of our common stock. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">three and six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, we repurchased in the open market </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">98,215</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million remained authorized and available under the Company&#8217;s share repurchase plan for future share repurchases.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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/2147477968/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/2147477968/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/2147478448/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>24
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587859856">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 8: Stock-Based Compensation</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.155%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cost of revenue</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">281</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">253</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">541</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">502</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,000</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">498</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,979</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">997</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,403</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,150</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,740</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,296</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,911</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,723</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,698</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,329</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,595</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,624</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,958</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,124</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, there was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">29.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">2.3</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> years.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>25
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686580928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 9: Income Taxes</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company recorded an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million during the three and six months ended July 31, 2024, and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million during the three and six months ended July 31, 2023, respectively. The income tax provision recorded in the first half of fiscal 2025 and the first half of fiscal 2024 were primarily attributable to state income taxes. As of July 31, 2024, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, the Company had unrecognized tax benefits of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> will significantly increase or decrease within the next twelve months. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> interest expense or penalties related to unrecognized tax benefits recorded through </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">  </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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 tax.</p></div>
<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><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<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 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<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 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 5: 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/2147477891/740-270-50-1<br><br>Reference 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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>26
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587858384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net (Loss) Income Per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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 );">Basic and Diluted Net (Loss) Income Per Share</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 10: Basic and Diluted Net (Loss) Income Per Share</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table sets forth the computation of basic and diluted net loss and net income per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Numerator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net (loss) income</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">271</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">55</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic weighted average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,556,754</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,330,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,392,351</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,327,255</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">604,473</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,556,754</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,935,018</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,392,351</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,327,255</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic and diluted net (loss) income per share</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.01</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.00</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Potentially dilutive securities of approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the three and six months ended July 31, 2024, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million for the six months ended July 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#8217;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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>27
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686614256">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 11: Commitments and Contingencies</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Purchase Commitments</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024 and January 31, 2024, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider that contains total minimum purchase commitments the Company is obligated to of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million between March 2024 and February 2029 and a non-cancelable service agreement with a cloud service provider that contains total annual minimum purchase commitments the Company is obligated to</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million between March 2024 and February 2025.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Legal Proceedings</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees, the Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">the Company did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;">Canadian Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#8220;free&#8221; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues, and the parties are awaiting the Court's ruling. The Company intends to continue to defend itself vigorously against this complaint. Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from the Canadian Litigation is not estimable.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Indemnification</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#8217;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: 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 3: 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 4: 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/2147478522/954-440-50-1<br><br>Reference 5: 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 6: 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>28
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686501088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financing Arrangements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_DebtDisclosureAbstract', window );"><strong>Debt 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_ShortTermDebtTextBlock', window );">Financing Arrangements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 12:  Financing Arrangements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Revolving Credit Facility</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">October 20, 2023</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">30.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which includes a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">50.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</span></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% and the Applicable Margin for the SOFR Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">% per annum.</span></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In June 2024, the Company entered into an amendment to the Credit Agreement which amendment permits the Company to undertake open market repurchases of its equity interests not exceeding $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in the aggregate, subject to certain conditions.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of July 31, 2024, the Company had $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in outstanding borrowings, which are recorded as debt, net of current portion in the condensed consolidated balance sheets. The funds were used for the acquisition of 2600hz, Inc. at the Term SOFR interest rate of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">. The Company is in compliance with the covenants contained in the Credit Agreement as of July 31, 2024. Accordingly, $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million of borrowing capacity was available for the purposes permitted by the Credit Agreement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">January 8, 2021</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company, as borrower, entered into a credit and security agreement (&#8220;Key Bank Credit Agreement&#8221;) with KeyBank National Association as Administrative Agent and lender, and KeyBanc Capital Markets Inc. as sole lead arranger and sole book runner. Prior to its termination as described below, the Key Bank Credit Agreement provided for a secured revolving credit facility under which the Company could have borrowed up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which included a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders were able to increase the total commitments under the credit facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">45.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, subject to certain conditions. Permitted uses of funds borrowed under the Key Bank Credit Agreement included working capital and other general corporate purposes.</span></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The Company terminated the Key Bank Credit Agreement on June 7, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_ShortTermDebtTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 short-term debt.</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 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/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_ShortTermDebtTextBlock</td>
</tr>
<tr>
<td style="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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686449664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisition<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_ooma_BusinessAcquisitionsAndDivestituresAbstract', window );"><strong>Business Acquisitions And Divestitures 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_ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock', window );">Business Acquisition</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;">Note 13: Business Acquisition</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">On October 20, 2023, the Company acquired all outstanding stock of 2600hz, Inc. ("2600Hz"), a provider of business communications applications targeted at resellers and carriers. The Company acquired 2600Hz for total cash consideration of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">32.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million (net of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million in cash acquired), subject to certain working capital adjustments. The acquisition did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">t have any contingency related payments.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table summarizes the final purchase price allocation, as adjusted (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:74.5%;"></td>
        <td style="width:2.36%;"></td>
        <td style="width:1.96%;"></td>
        <td style="width:1%;"></td>
        <td style="width:19.18%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Fair Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,829</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">440</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">588</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Property plant and equipment, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">195</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Intangible assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21,200</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">14,414</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts payable and other liabilities</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,487</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total purchase consideration</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">34,048</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Intangible assets acquired primarily consisted of developed technology of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million, which represented the fair values of the acquired 2600Hz developed platform technology and have an estimated useful life of seven years as of the date of acquisition. The goodwill recognized was primarily attributable to the assembled workforce and is not expected to be deductible for income tax purposes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In connection with the acquisition, the Company agreed to issue approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">423,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> restricted stock units that are subject to on-going service conditions and vest over an </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">18-month</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> period. The fair value of these awards of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> is being recorded as stock compensation expense over the service period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">During the second fiscal quarter of 2023, the Company acquired OnSIP for $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">, the Company received $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> million from the seller for certain working capital adjustments, which is recorded in investing activities in the Company's condensed consolidated statements of cash flows.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BusinessAcquisitionsAndDivestituresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business acquisitions and divestitures.</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;">ooma_BusinessAcquisitionsAndDivestituresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business acquisitions and divestitures 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;">ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587827264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements Not Yet Adopted</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) 2023-07, which is intended to improve reportable segment disclosure requirements, primarily through additional 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 amendments should be applied retrospectively to all prior periods presented in the financial statements. The Company is evaluating the new standard.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is evaluating the new standard.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587780384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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 );">Summary of Revenue Disaggregated by Revenue Source</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">59,566</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">54,726</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">117,955</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">107,775</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,563</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,627</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,673</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,430</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total revenue</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">64,129</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">58,353</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">126,628</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">115,205</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="re">
<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 );">Concentration of Net Accounts Receivable Balance</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.42%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.34%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.22%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.22%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer A</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">33</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td colspan="9" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></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_DeferredRevenueByArrangementDisclosureTextBlock', window );">Components of Deferred Revenue</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:56.791%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.683%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.222%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:1.36%;"></td>
        <td style="width:12.222%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Subscription and services</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,131</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,034</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Product and other</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">22</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,141</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,056</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: current deferred revenue</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,123</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">18</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></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_DeferredRevenueByArrangementDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date.</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_DeferredRevenueByArrangementDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308695357184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_ooma_BalanceSheetComponentsAbstract', window );"><strong>Balance Sheet Components [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_ScheduleOfInventoryCurrentTableTextBlock', window );">Components of Inventories</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:top;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Finished goods</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,033</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Raw materials</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,204</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,758</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total inventory</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,237</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">19,782</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock', window );">Components of Other Current and Non-current Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9,060</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,579</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Prepaid expenses and other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,712</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,177</span></p></td>
       </tr>
       <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Convertible note receivable (see "GTC" below)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:11pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,257</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,787</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,484</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,559</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,497</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,092</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,257</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,952</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,358</span></p></td>
       </tr>
       <tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total other non-current assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21,044</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,615</span></p></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_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Components of Accrued Expenses and Other Current Liabilities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.37%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:10.658%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:1.46%;"></td>
        <td style="width:16.837%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Payroll and related expenses</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,737</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,301</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,475</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,598</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834;"><span style="-sec-ix-hidden:F_cdb13912-9734-4f23-8fba-675ba3625e01;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,710</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer-related liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,365</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,118</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,101</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,827</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,388</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,586</span></p></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_ooma_BalanceSheetComponentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</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;">ooma_BalanceSheetComponentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts of other assets. This disclosure includes other current assets and other noncurrent 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;">us-gaap_ScheduleOfOtherAssetsTableTextBlock</td>
</tr>
<tr>
<td style="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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587755216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets, Net (Excluding Goodwill) [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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:20.631%;"></td>
        <td style="width:1.019%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:7.41%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:8.708%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:8.708%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.198%;"></td>
        <td style="width:9.986%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:1.118%;"></td>
        <td style="width:8.708%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of January 31, 2024</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Gross <br/>Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Accumulated Amortization</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Carrying<br/>Value</span></p></td>
       </tr>
       <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Developed technology</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">20,618</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,277</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,341</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">20,618</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,865</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,753</span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Customer relationships</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,733</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,812</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,336</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9,209</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Trade names</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">-</span><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,685</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">841</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">844</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,685</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">695</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">990</span></p></td>
       </tr>
       <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total intangible assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">38,848</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13,851</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,997</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">38,848</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,896</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">27,952</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Estimated Future Amortization Expense</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:48.69%;"></td>
        <td style="width:2.42%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:17.497%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:2.619%;"></td>
        <td style="width:23.535%;"></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Total</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,812</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,624</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5,068</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,950</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,030</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,513</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">24,997</span></p></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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<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/2147482665/350-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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible 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/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308710870992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_LeasesAbstract', window );"><strong>Leases [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_ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock', window );">Summary of Supplemental Balance Sheet Information Related to Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">As of</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">January 31,<br/>2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,833</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">15,833</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,041</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,710</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12,635</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13,676</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,345</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">17,418</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.6</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6.0</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;years</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Weighted-average discount rate</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.2</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">%</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock', window );">Summary of Supplemental Cash Flow Information Related to Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.567%;"></td>
        <td style="width:1.061%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.141%;"></td>
        <td style="width:1.001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:9.488%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;word-break:break-word;">
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash payments for operating leases</span></p></td>
        <td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">958</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,131</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,909</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,028</span></p></td>
        <td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">310</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,902</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Summary of Maturities of Operating Lease Liabilities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">July 31, 2024, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:45.531%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1.32%;"></td>
        <td style="width:11.078%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31, 2024</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2025 remainder</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,935</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,810</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2027</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,969</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2028</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,720</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">2029</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,742</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Thereafter</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,630</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total future minimum lease payments</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="text-indent:7pt;vertical-align:top;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">19,806</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Less: imputed interest</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,461</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">16,345</span></p></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_ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 supplemental balance sheet information related to leases.</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;">ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 supplemental cash flow information related to leases.</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;">ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686588640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summarizes of Stock Option Activities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Stock option activity for the six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:52.089%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:1.459%;"></td>
        <td style="width:13.052%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Aggregate</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Exercise Price</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Intrinsic Value</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Per Share</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">(in thousands)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,161</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.14</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,522</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Exercised</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">39</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.99</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.24</span></p></td>
        <td style="vertical-align:middle;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:middle;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,118</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.28</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,040</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested and exercisable as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,057</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.92</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,040</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="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 );">Summarizes of Restricted Stock Units Activities</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"> was as follows:</span>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:62.032%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:15.543%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:1.72%;"></td>
        <td style="width:15.543%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of January 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,075</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.74</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Granted</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,114</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.68</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Vested</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">703</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">12.77</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Canceled</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.24</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Balance as of July 31, 2024</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,465</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.73</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_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> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<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> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588376416">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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 );">Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.155%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:1.161%;"></td>
        <td style="width:11.93%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cost of revenue</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">281</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">253</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">541</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">502</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Sales and marketing</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,000</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">498</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,979</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">997</span></p></td>
       </tr>
       <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Research and development</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,403</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,150</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,740</span></p></td>
        <td style="background-color:#d4e5f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,296</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">General and administrative</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,911</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,723</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,698</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,329</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,595</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,624</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">8,958</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">7,124</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686570704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net (Loss) Income Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table sets forth the computation of basic and diluted net loss and net income per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:43.794%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:1.279%;"></td>
        <td style="width:11.493%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Three Months Ended</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Six Months Ended</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">July 31,<br/>2023</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Numerator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Net (loss) income</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">271</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">55</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic weighted average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,556,754</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,330,545</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,392,351</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,327,255</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:7pt;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">604,473</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#8212;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="text-indent:14pt;vertical-align:bottom;"><p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,556,754</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,935,018</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">26,392,351</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">25,327,255</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Basic and diluted net (loss) income per share</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.01</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.00</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;">&#160;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588084400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisition (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2024</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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember', window );">2600Hz, Inc</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock', window );">Schedule of Final Purchase Price Allocation</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;">The following table summarizes the final purchase price allocation, as adjusted (in thousands):</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:74.5%;"></td>
        <td style="width:2.36%;"></td>
        <td style="width:1.96%;"></td>
        <td style="width:1%;"></td>
        <td style="width:19.18%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;">Fair Value</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Cash and cash equivalents</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,829</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">440</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Other current and non-current assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">588</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Property plant and equipment, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">195</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Intangible assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">21,200</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">14,414</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Accounts payable and other liabilities</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">1,487</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">3,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
        <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">Total purchase consideration</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;">$</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;">34,048</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;min-width:fit-content;">&#160;</span></p></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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.</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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Paragraph 1<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593822256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Additional Information (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jul. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th">
<div>Jul. 31, 2024 </div>
<div>USD ($) </div>
<div>Customer </div>
<div>Country </div>
<div>Source</div>
</th>
<th class="th">
<div>Jul. 31, 2023 </div>
<div>Country </div>
<div>Customer</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>
<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_ooma_NumberOfSourcesOfRevenue', window );">Number of sources of revenue | Source</a></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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue', window );">Number of countries outside United States represented 10% or more of total revenue | Country</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>
</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_ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue', window );">Number of customers that individually exceeded 10% of revenue | Customer</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>
</tr>
<tr class="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 );">Deferred revenue recognized | $</a></td>
<td class="nump">$ 3.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13.9<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=ooma_OomaBusinessMember', window );">Ooma Business | Revenue | Product 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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">61.00%<span></span>
</td>
<td class="nump">57.00%<span></span>
</td>
<td class="nump">61.00%<span></span>
</td>
<td class="nump">56.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_ProductOrServiceAxis=ooma_OomaResidentialMember', window );">Ooma Residential | Revenue | Product 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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">36.00%<span></span>
</td>
<td class="nump">41.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">41.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 countries outside that exceeded ten percentage of revenue.</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;">ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 customers that individually exceeded 10% of revenue.</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;">ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_NumberOfSourcesOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sources of revenue.</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;">ooma_NumberOfSourcesOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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_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_srt_ProductOrServiceAxis=ooma_OomaBusinessMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_OomaBusinessMember</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=us-gaap_ProductConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ProductConcentrationRiskMember</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=ooma_OomaResidentialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_OomaResidentialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593728672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 64,129<span></span>
</td>
<td class="nump">$ 58,353<span></span>
</td>
<td class="nump">$ 126,628<span></span>
</td>
<td class="nump">$ 115,205<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=ooma_SubscriptionAndServicesRevenueMember', window );">Subscription and services 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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">59,566<span></span>
</td>
<td class="nump">54,726<span></span>
</td>
<td class="nump">117,955<span></span>
</td>
<td class="nump">107,775<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=ooma_ProductAndOtherRevenueMember', window );">Product and other 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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 4,563<span></span>
</td>
<td class="nump">$ 3,627<span></span>
</td>
<td class="nump">$ 8,673<span></span>
</td>
<td class="nump">$ 7,430<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_SubscriptionAndServicesRevenueMember</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=ooma_ProductAndOtherRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_ProductAndOtherRevenueMember</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>41
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587779584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable | Customer Concentration Risk | Customer A</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_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">18.00%<span></span>
</td>
<td class="nump">33.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2147478785/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_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=ooma_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=ooma_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308594255008">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Components of Deferred Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<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_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 17,141<span></span>
</td>
<td class="nump">$ 17,056<span></span>
</td>
</tr>
<tr class="re">
<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 );">Less: current deferred revenue</a></td>
<td class="nump">17,123<span></span>
</td>
<td class="nump">17,041<span></span>
</td>
</tr>
<tr class="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, non-current</a></td>
<td class="nump">18<span></span>
</td>
<td class="nump">15<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=ooma_SubscriptionAndServicesMember', window );">Subscription and Services</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_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">17,131<span></span>
</td>
<td class="nump">17,034<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 and Other</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_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<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_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 10<span></span>
</td>
<td class="nump">$ 22<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_DeferredRevenueArrangementLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_DeferredRevenueArrangementLineItems</td>
</tr>
<tr>
<td style="padding-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_ProductOrServiceAxis=ooma_SubscriptionAndServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_SubscriptionAndServicesMember</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588217504">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Additional Information (Details 1) - Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date: 2024-08-01<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jul. 31, 2024 </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 );">Revenue expected to be recognized from remaining performance obligations</a></td>
<td class="nump">$ 34.6<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue expected to be recognized from remaining performance obligations, percentage</a></td>
<td class="nump">41.00%<span></span>
</td>
</tr>
<tr class="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 );">Revenue expected to be recognized from remaining performance obligations, period</a></td>
<td class="text">12 months<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_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining performance obligation to total remaining performance obligation not 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/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_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-08-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-08-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>44
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686543504">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-Sale [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_CashAndCashEquivalentsFairValueDisclosure', window );">Total cash and cash equivalents</a></td>
<td class="nump">$ 16.6<span></span>
</td>
<td class="nump">$ 17.5<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_ooma_NonMarketableEquityInvestments', window );">Non-marketable equity investments</a></td>
<td class="nump">$ 3.3<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_ooma_NonMarketableEquityInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-marketable equity investments.</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;">ooma_NonMarketableEquityInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<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><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<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/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_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_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: 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 4: 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 (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-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_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-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>45
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587768640">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">$ 10,033<span></span>
</td>
<td class="nump">$ 12,024<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">5,204<span></span>
</td>
<td class="nump">7,758<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_InventoryNet', window );">Total inventory</a></td>
<td class="nump">$ 15,237<span></span>
</td>
<td class="nump">$ 19,782<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_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for 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> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<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_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing 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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<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_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>46
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308594763872">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Other Current and Non-current Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_OtherAssetsAbstract', window );"><strong>Other Assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_DeferredSalesCommissionsCurrent', window );">Deferred sales commissions, current</a></td>
<td class="nump">$ 9,060<span></span>
</td>
<td class="nump">$ 8,579<span></span>
</td>
</tr>
<tr class="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 expenses and other</a></td>
<td class="nump">4,712<span></span>
</td>
<td class="nump">4,177<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_ooma_ConvertibleNoteReceivableFromRelatedParty', window );">Convertible note receivable (see "GTC" below)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,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_OtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">1,787<span></span>
</td>
<td class="nump">1,484<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_PrepaidExpenseAndOtherAssetsCurrent', window );">Total other current assets</a></td>
<td class="nump">15,559<span></span>
</td>
<td class="nump">16,497<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_ooma_DeferredSalesCommissionsNonCurrent', window );">Deferred sales commissions, non-current</a></td>
<td class="nump">15,092<span></span>
</td>
<td class="nump">15,257<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsMiscellaneousNoncurrent', window );">Other assets</a></td>
<td class="nump">5,952<span></span>
</td>
<td class="nump">2,358<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_OtherAssetsNoncurrent', window );">Total other non-current assets</a></td>
<td class="nump">$ 21,044<span></span>
</td>
<td class="nump">$ 17,615<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_ConvertibleNoteReceivableFromRelatedParty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Convertible note receivable from related party.</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;">ooma_ConvertibleNoteReceivableFromRelatedParty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_DeferredSalesCommissionsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sales commissions current.</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;">ooma_DeferredSalesCommissionsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_DeferredSalesCommissionsNonCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sales commissions non current.</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;">ooma_DeferredSalesCommissionsNonCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_OtherAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherAssetsAbstract</td>
</tr>
<tr>
<td style="padding-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_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_OtherAssetsMiscellaneousNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other miscellaneous assets expected to be realized or consumed after one year or 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_OtherAssetsMiscellaneousNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593459168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components - Additional Information (Details) - USD ($)<br> $ in Thousands, shares in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 08, 2024</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2018</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_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [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_AmortizationOfDeferredSalesCommissions', window );">Amortization expense for deferred sales commissions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,400<span></span>
</td>
<td class="nump">$ 2,200<span></span>
</td>
<td class="nump">$ 4,800<span></span>
</td>
<td class="nump">$ 4,400<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_ooma_ConvertibleNoteReceivableFromRelatedParty', window );">Convertible note receivable</a></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="text">&#160;<span></span>
</td>
<td class="nump">$ 2,257<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Non-cancelable inventory purchase commitments</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="nump">5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<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_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></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">(980)<span></span>
</td>
<td class="text">&#160;<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_ooma_NonMarketableEquityInvestments', window );">Fair value of GTC preferred stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,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="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=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [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_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">800<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</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=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | Convertible Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [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_ooma_InvestmentInPrivatelyHeldCompany', window );">Investment in privately-held company</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</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=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [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_ooma_NonMarketableEquityInvestments', window );">Fair value of GTC preferred stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,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="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=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | Preferred Stock | Equity Financing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [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_ooma_ConversionPricePerSharePercentage', window );">Conversion price per share percentage</a></td>
<td class="nump">70.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CarryingValueOfConvertibleNote', window );">Carrying value of convertible promissory note</a></td>
<td class="nump">$ 2,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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares', window );">Outstanding principal and unpaid interests converted to shares</a></td>
<td class="nump">8.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>
<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_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></td>
<td class="num">$ (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>
<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_ooma_BalanceSheetComponentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</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;">ooma_BalanceSheetComponentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_CarryingValueOfConvertibleNote">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of convertible note.</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;">ooma_CarryingValueOfConvertibleNote</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_ConversionPricePerSharePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Conversion price per share 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;">ooma_ConversionPricePerSharePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_ConvertibleNoteReceivableFromRelatedParty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Convertible note receivable from related party.</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;">ooma_ConvertibleNoteReceivableFromRelatedParty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_GainOnNoteConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gain on note conversion.</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;">ooma_GainOnNoteConversion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_InvestmentInPrivatelyHeldCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Investment in privately-held company.</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;">ooma_InvestmentInPrivatelyHeldCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_NonMarketableEquityInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-marketable equity investments.</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;">ooma_NonMarketableEquityInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Outstanding principal and unpaid interests converted to 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;">ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_AmortizationOfDeferredSalesCommissions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for the periodic realization of capitalized fees that were paid to salespeople, distributors, brokers, and agents at the time of the conclusion of the sale. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(3))<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_AmortizationOfDeferredSalesCommissions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_GlobalTelecomCorporationMember</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=ooma_ConvertiblePromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_ConvertiblePromissoryNoteMember</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_PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PreferredStockMember</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=ooma_EquityFinancingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ooma_EquityFinancingMember</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>48
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308587418176">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [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_EmployeeRelatedLiabilitiesCurrent', window );">Payroll and related expenses</a></td>
<td class="nump">$ 10,737<span></span>
</td>
<td class="nump">$ 12,301<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_ooma_RegulatoryTaxAccruals', window );">Regulatory fees and taxes</a></td>
<td class="nump">5,475<span></span>
</td>
<td class="nump">4,598<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Short-term operating lease liabilities</a></td>
<td class="nump">$ 3,710<span></span>
</td>
<td class="nump">$ 3,742<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList', window );">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Total accrued expenses and other current liabilities<span></span>
</td>
<td class="text">Total accrued expenses and other current liabilities<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_ooma_AccruedCustomerRelatedLiabilitiesCurrent', window );">Customer-related liabilities</a></td>
<td class="nump">$ 1,365<span></span>
</td>
<td class="nump">$ 1,118<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">3,101<span></span>
</td>
<td class="nump">4,827<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_AccruedExpensesAndOtherCurrentLiabilities', window );">Total accrued expenses and other current liabilities</a></td>
<td class="nump">$ 24,388<span></span>
</td>
<td class="nump">$ 26,586<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_AccruedCustomerRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued customer related liabilities current.</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;">ooma_AccruedCustomerRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_AccruedExpensesAndOtherCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued expenses and other current 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;">ooma_AccruedExpensesAndOtherCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_RegulatoryTaxAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Regulatory tax accruals.</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;">ooma_RegulatoryTaxAccruals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<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_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_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 line item in statement of financial position that includes current 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/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-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_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</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_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, 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>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(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_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-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>49
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686368896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_GoodwillLineItems', window );"><strong>Goodwill [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_AmortizationOfIntangibleAssets', window );">Amortization expense</a></td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="nump">$ 2,955<span></span>
</td>
<td class="nump">$ 1,433<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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-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_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Section 50<br> -Paragraph 1<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 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: 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 (c)<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 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/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 9: 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 (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: 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 (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: 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 (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillLineItems</td>
</tr>
<tr>
<td style="padding-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>50
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308586112784">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 38,848<span></span>
</td>
<td class="nump">$ 38,848<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(13,851)<span></span>
</td>
<td class="num">(10,896)<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_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">24,997<span></span>
</td>
<td class="nump">27,952<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">20,618<span></span>
</td>
<td class="nump">20,618<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(4,277)<span></span>
</td>
<td class="num">(2,865)<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_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 16,341<span></span>
</td>
<td class="nump">17,753<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology | Minimum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">2 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology | Maximum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">7 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 16,545<span></span>
</td>
<td class="nump">16,545<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(8,733)<span></span>
</td>
<td class="num">(7,336)<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_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 7,812<span></span>
</td>
<td class="nump">9,209<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships | Minimum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">5 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships | Maximum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">7 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 1,685<span></span>
</td>
<td class="nump">1,685<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(841)<span></span>
</td>
<td class="num">(695)<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_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 844<span></span>
</td>
<td class="nump">$ 990<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Minimum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">2 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Maximum</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">5 years<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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<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(16))<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_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<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 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-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_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-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_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588003696">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">2025 remainder</a></td>
<td class="nump">$ 2,812<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2026</a></td>
<td class="nump">5,624<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2027</a></td>
<td class="nump">5,068<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2028</a></td>
<td class="nump">3,950<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2029</a></td>
<td class="nump">3,030<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_ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour', window );">Thereafter</a></td>
<td class="nump">4,513<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_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 24,997<span></span>
</td>
<td class="nump">$ 27,952<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite lived intangible assets amortization expense after year four.</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;">ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.</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 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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 350<br> -SubTopic 30<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/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308592577728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Oct. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [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_LesseeOperatingLeaseDescription', window );">Operating lease, description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal 2033.<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_ooma_LesseeOperatingLeaseExpirationDateEndingPeriod', window );">Operating lease, expiration date ending 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">2033<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Lease costs</a></td>
<td class="nump">$ 1.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.5<span></span>
</td>
<td class="nump">$ 3.2<span></span>
</td>
<td class="nump">$ 2.8<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_GeneralAndAdministrativeExpenseMember', window );">General and Administrative 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="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_FacilitiesConsolidationCharges', window );">Facilities consolidation charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.4<span></span>
</td>
<td class="text">&#160;<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_ooma_RemainingOperatingLeaseLiabilityWroteOff', window );">Write off of lease liability</a></td>
<td class="nump">$ 1.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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_FacilitiesConsolidationCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Facilities consolidation 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;">ooma_FacilitiesConsolidationCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_LesseeOperatingLeaseExpirationDateEndingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expiration date ending 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;">ooma_LesseeOperatingLeaseExpirationDateEndingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_RemainingOperatingLeaseLiabilityWroteOff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining operating lease liability wrote 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;">ooma_RemainingOperatingLeaseLiabilityWroteOff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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_LesseeLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<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 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_LesseeLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-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_LesseeOperatingLeaseDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of lessee's 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 3<br> -Subparagraph (a)(1)<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_LesseeOperatingLeaseDescription</td>
</tr>
<tr>
<td style="padding-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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308592610656">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_AssetsAbstract', window );"><strong>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_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">$ 15,833<span></span>
</td>
<td class="nump">$ 17,041<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_OperatingLeaseAsset', window );">Total leased assets</a></td>
<td class="nump">15,833<span></span>
</td>
<td class="nump">17,041<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAbstract', window );"><strong>Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Short-term operating lease liabilities</a></td>
<td class="nump">3,710<span></span>
</td>
<td class="nump">3,742<span></span>
</td>
</tr>
<tr class="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 operating lease liabilities</a></td>
<td class="nump">12,635<span></span>
</td>
<td class="nump">13,676<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_OperatingLeaseLiability', window );">Total lease liabilities</a></td>
<td class="nump">$ 16,345<span></span>
</td>
<td class="nump">$ 17,418<span></span>
</td>
</tr>
<tr class="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 );">Weighted-average remaining lease term</a></td>
<td class="text">5 years 7 months 6 days<span></span>
</td>
<td class="text">6 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_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted-average discount rate</a></td>
<td class="nump">6.30%<span></span>
</td>
<td class="nump">6.20%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_OperatingLeaseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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;">ooma_OperatingLeaseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_AssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AssetsAbstract</td>
</tr>
<tr>
<td style="padding-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_LiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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>
<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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686517872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_LeasesAbstract', window );"><strong>Leases [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Cash payments for operating leases</a></td>
<td class="nump">$ 958<span></span>
</td>
<td class="nump">$ 1,131<span></span>
</td>
<td class="nump">$ 1,909<span></span>
</td>
<td class="nump">$ 2,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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets recognized in exchange for new operating lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 310<span></span>
</td>
<td class="nump">$ 4,902<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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-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_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_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>55
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593035712">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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>Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">2025 remainder</a></td>
<td class="nump">$ 1,935<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">2026</a></td>
<td class="nump">2,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2027</a></td>
<td class="nump">3,969<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">2028</a></td>
<td class="nump">3,810<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2029</a></td>
<td class="nump">2,742<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_ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour', window );">Thereafter</a></td>
<td class="nump">4,630<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 future minimum lease payments</a></td>
<td class="nump">19,806<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="num">(3,461)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Present value of lease liabilities</a></td>
<td class="nump">$ 16,345<span></span>
</td>
<td class="nump">$ 17,418<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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>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;">ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593820960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Summarizes of Stock Option Activities (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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>
</tr>
<tr class="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 );">Shares, Beginning balance</a></td>
<td class="nump">1,161,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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Shares, Exercised</a></td>
<td class="num">(39,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Shares, Canceled</a></td>
<td class="num">(4,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Shares, Ending balance</a></td>
<td class="nump">1,118,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Shares, Vested and exercisable</a></td>
<td class="nump">1,057,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_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>
</tr>
<tr class="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 );">Weighted Average Exercise Price Per Share, Beginning balance</a></td>
<td class="nump">$ 10.14<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Weighted Average Exercise Price Per Share, Exercised</a></td>
<td class="nump">5.99<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Canceled</a></td>
<td class="nump">11.24<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Weighted Average Exercise Price Per Share, Ending balance</a></td>
<td class="nump">10.28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Vested and exercisable</a></td>
<td class="nump">$ 9.92<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Aggregate Intrinsic Value</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 2,040<span></span>
</td>
<td class="nump">$ 2,522<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue', window );">Aggregate Intrinsic Value, Vested and exercisable</a></td>
<td class="nump">$ 2,040<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercisable or convertible options. 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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercisable options that may 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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercisable or convertible options. 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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<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)(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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://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> -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 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 (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>57
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308592471760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</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_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Stock options granted</a></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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Number of shares of common stock issued under ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200,000<span></span>
</td>
<td class="nump">100,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_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="nump">$ 891,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_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Stock repurchase program, remaining authorized repurchase amount</a></td>
<td class="nump">$ 3,100,000<span></span>
</td>
<td class="nump">$ 3,100,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_SubsidiarySaleOfStockAxis=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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased', window );">Weighted purchase price of shares of common stock under ESPP</a></td>
<td class="nump">$ 7.35<span></span>
</td>
<td class="nump">$ 7.35<span></span>
</td>
<td class="nump">$ 10.6<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 );">Employee Stock 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [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" 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 vested options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember', window );">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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [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_StockRepurchasedDuringPeriodShares', window );">Repurchases of common stock, shares</a></td>
<td class="nump">98,215<span></span>
</td>
<td class="nump">98,215<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_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="nump">$ 900,000<span></span>
</td>
<td class="nump">$ 900,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_MaximumMember', window );">Maximum | 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [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_srt_StockRepurchaseProgramAuthorizedAmount1', window );">Stock repurchase program authorized 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="nump">$ 4,000,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_StockholdersEquityNoteDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stockholders equity note 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;">ooma_StockholdersEquityNoteDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</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 505<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-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;">srt_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted-average price paid for shares purchased on open market 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://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_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 during the period as a result of an employee stock purchase plan.</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 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> -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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans</td>
</tr>
<tr>
<td style="padding-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_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</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_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury 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> -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 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> -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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/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/2147479134/946-220-S99-3<br><br>Reference 6: 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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-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_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury 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> -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 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> -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 4: 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/2147479168/946-830-55-11<br><br>Reference 5: 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/2147478009/946-205-45-4<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 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<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(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SubsidiarySaleOfStockAxis=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_SubsidiarySaleOfStockAxis=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=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_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_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>58
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308588887568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details) - Restricted Stock Units (RSUs)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2024 </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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Shares, RSUs Beginning Balance | shares</a></td>
<td class="nump">2,075,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 );">Shares, Granted | shares</a></td>
<td class="nump">1,114,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 );">Shares, Vested | shares</a></td>
<td class="num">(703,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 );">Shares, Canceled | shares</a></td>
<td class="num">(21,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 );">Shares, RSUs Ending Balance | shares</a></td>
<td class="nump">2,465,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract', window );"><strong>Weighted Average Grant-Date Fair Value Per Share</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Beginning Balance | $ / shares</a></td>
<td class="nump">$ 13.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Granted | $ / shares</a></td>
<td class="nump">8.68<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Weighted Average Grant-Date Fair Value Per Share, Vested | $ / shares</a></td>
<td class="nump">12.77<span></span>
</td>
</tr>
<tr class="re">
<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 );">Weighted Average Grant-Date Fair Value Per Share, Canceled | $ / shares</a></td>
<td class="nump">13.24<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Grant-Date Fair Value Per Share, Ending Balance | $ / shares</a></td>
<td class="nump">$ 11.73<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593788192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">$ 4,595<span></span>
</td>
<td class="nump">$ 3,624<span></span>
</td>
<td class="nump">$ 8,958<span></span>
</td>
<td class="nump">$ 7,124<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 );">Cost of 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">281<span></span>
</td>
<td class="nump">253<span></span>
</td>
<td class="nump">541<span></span>
</td>
<td class="nump">502<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_SellingAndMarketingExpenseMember', window );">Sales and marketing</a></td>
<td class="text">&#160;<span></span>
</td>
<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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">498<span></span>
</td>
<td class="nump">1,979<span></span>
</td>
<td class="nump">997<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">1,403<span></span>
</td>
<td class="nump">1,150<span></span>
</td>
<td class="nump">2,740<span></span>
</td>
<td class="nump">2,296<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_GeneralAndAdministrativeExpenseMember', window );">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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">$ 1,911<span></span>
</td>
<td class="nump">$ 1,723<span></span>
</td>
<td class="nump">$ 3,698<span></span>
</td>
<td class="nump">$ 3,329<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-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_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_SellingAndMarketingExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SellingAndMarketingExpenseMember</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_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_GeneralAndAdministrativeExpenseMember</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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686449920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Additional Information (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2024 </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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized compensation expense related to unvested share-based awards</a></td>
<td class="nump">$ 29.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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Compensation expenses recognized over weighted average vesting period</a></td>
<td class="text">2 years 3 months 18 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 not yet recognized for nonvested 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 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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308592612896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Income tax provision</a></td>
<td class="nump">$ 438,000<span></span>
</td>
<td class="nump">$ 267,000<span></span>
</td>
<td class="nump">$ 763,000<span></span>
</td>
<td class="nump">$ 400,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_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits</a></td>
<td class="nump">$ 11,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,400,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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Interest expense or penalties related to unrecognized tax benefits</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="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_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_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 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-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 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<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 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<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 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: 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 7: 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 8: 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 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> -Subparagraph (h)<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 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/2147477250/944-220-S99-1<br><br>Reference 11: 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 12: 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_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/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/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 3: 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_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/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/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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593163920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Apr. 30, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_NetIncomeLossAbstract', window );"><strong>Numerator</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_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="num">$ (2,139)<span></span>
</td>
<td class="nump">$ 271<span></span>
</td>
<td class="num">$ (326)<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
<td class="num">$ (55)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract', window );"><strong>Denominator</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted average common shares</a></td>
<td class="nump">26,556,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,330,545<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
<td class="nump">25,327,255<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Potentially dilutive shares from equity plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">604,473<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Diluted weighted-average common shares</a></td>
<td class="nump">26,556,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,935,018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
<td class="nump">25,327,255<span></span>
</td>
</tr>
<tr class="re">
<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 );">Basic net (loss) income per share</a></td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.16)<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_EarningsPerShareDiluted', window );">Diluted net (loss) income per share</a></td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.16)<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_ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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/2147478524/942-220-S99-1<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<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 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 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 (e)(4)<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 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 9: 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 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 (b)<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 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: 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 14: 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 15: 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 16: 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 17: 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/2147478524/942-220-S99-1<br><br>Reference 18: 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/2147477250/944-220-S99-1<br><br>Reference 19: 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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480454/718-10-45-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 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-23<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-28A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-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_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 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<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 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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/2147479168/946-830-55-10<br><br>Reference 18: 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/2147479105/946-220-45-7<br><br>Reference 19: 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/2147477250/944-220-S99-1<br><br>Reference 20: 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/2147479134/946-220-S99-1<br><br>Reference 21: 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/2147479134/946-220-S99-3<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 24: 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 25: 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 26: 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 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)(i))<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)(4)(iii)(A))<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 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 30: 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 31: 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 32: 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 33: 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 34: 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 35: 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 36: 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 37: 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/2147478524/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_NetIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NetIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308686530448">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net Loss Per Share - Additional Information (Details) - shares<br> shares in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Potentially dilutive securities excluded from the computation of diluted net loss per share</a></td>
<td class="nump">0.3<span></span>
</td>
<td class="nump">0.3<span></span>
</td>
<td class="nump">0.6<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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593753216">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2024</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_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [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_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="nump">$ 5,000,000<span></span>
</td>
<td class="nump">$ 1,100,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_LossContingencyAccrualAtCarryingValue', window );">Accrued liabilities for loss contingencies</a></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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember', window );">Non-Cancelable Service Agreement with Telecommunications Provider | Minimum</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_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [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_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="nump">11,900,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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember', window );">Non Cancelable Service Agreement With Cloud Service Provider | Minimum</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_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [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_PurchaseObligationDueInNextTwelveMonths', window );">Non-cancelable purchase commitments between March 2024 and February 2025</a></td>
<td class="nump">$ 1,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_CommitmentsAndContingenciesDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commitments and contingencies 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;">ooma_CommitmentsAndContingenciesDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_LossContingencyAccrualAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</p></div>
<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><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-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_LossContingencyAccrualAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PurchaseObligationDueInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 purchase arrangement to be paid in next fiscal year following current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment. 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_PurchaseObligationDueInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember</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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember</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>65
<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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308589216400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financing Arrangements - Additional Information (Details) - Revolving Credit Facility - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 08, 2021</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2024</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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Credit 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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityInitiationDate1', window );">Credit agreement initiation date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Oct. 20,  2023<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 50,000,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_LineOfCreditFacilityDescription', window );">Borrowing capacity description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">On October 20, 2023, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $30.0 million, which includes a $10.0 million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $50.0 million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityInterestRateDescription', window );">Credit agreement, Interest rate description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is 1.25% and the Applicable Margin for the SOFR Loans is 2.00%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by 5.00%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of 0.25% per annum.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCommitmentFeePercentage', window );">Percentage of commitment fees on revolving credit facility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.25%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Borrowing remaining capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,500,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_ooma_MaximumOpenMarketRepurchasesOfEquityInterests', window );">Maximum open market repurchases of equity interests</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Credit Agreement | SOFR</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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_DebtInstrumentInterestRateStatedPercentage', window );">Credit agreement, rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
</tr>
<tr class="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 );">Credit agreement, Variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAverageOutstandingAmount', window );">Borrowing capacity, Outstanding amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,500,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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Credit Agreement | Base Rate</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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_DebtInstrumentInterestRateStatedPercentage', window );">Credit agreement, rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.25%<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 );">Credit Agreement | 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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,000,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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Credit Agreement | Maximum | SOFR</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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_DebtInstrumentInterestRateIncreaseDecrease', window );">Debt instrument interest rate increases on borrowings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Credit Agreement | Letters of Credit</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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,000,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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Key Bank Credit 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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityInitiationDate1', window );">Credit agreement initiation date</a></td>
<td class="text">Jan.  08,  2021<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</a></td>
<td class="nump">$ 45,000,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_LineOfCreditFacilityDescription', window );">Borrowing capacity description</a></td>
<td class="text">On January 8, 2021, the Company, as borrower, entered into a credit and security agreement (&#8220;Key Bank Credit Agreement&#8221;) with KeyBank National Association as Administrative Agent and lender, and KeyBanc Capital Markets Inc. as sole lead arranger and sole book runner. Prior to its termination as described below, the Key Bank Credit Agreement provided for a secured revolving credit facility under which the Company could have borrowed up to an aggregate amount of $25.0 million, which included a $10.0 million sub-facility for letters of credit. The Company and its lenders were able to increase the total commitments under the credit facility to up to an aggregate amount of $45.0 million, subject to certain conditions. Permitted uses of funds borrowed under the Key Bank Credit Agreement included working capital and other general corporate purposes.<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 );">Key Bank Credit Agreement | 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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 25,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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Key Bank Credit Agreement | Letters of Credit</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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [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_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 10,000,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_ooma_MaximumOpenMarketRepurchasesOfEquityInterests">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum open market repurchases of equity interests.</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;">ooma_MaximumOpenMarketRepurchasesOfEquityInterests</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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_DebtInstrumentInterestRateIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Incremental percentage increase (decrease) in the stated rate on a 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_DebtInstrumentInterestRateIncreaseDecrease</td>
</tr>
<tr>
<td style="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_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://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(22)(a)(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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LineOfCreditFacilityAverageOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Average amount borrowed under the credit facility during the 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_LineOfCreditFacilityAverageOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LineOfCreditFacilityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used.</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_LineOfCreditFacilityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="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_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<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(19)(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_LineOfCreditFacilityDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of the terms of a credit facility arrangement. Terms typically include interest rate, collateral required, guarantees required, repayment requirements, and restrictions on use of assets and activities of the entity.</p></div>
<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 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/2147481544/470-10-50-6<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(22)(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(19)(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_LineOfCreditFacilityDescription</td>
</tr>
<tr>
<td style="padding-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_LineOfCreditFacilityInitiationDate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Date the credit facility first became available, in YYYY-MM-DD format.</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(22)(b))<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(19)(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_LineOfCreditFacilityInitiationDate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_LineOfCreditFacilityInterestRateDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of interest rate for borrowing under credit facility. Includes, but is not limited to, terms and method for determining interest rate.</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(22)(b))<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(19)(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_LineOfCreditFacilityInterestRateDescription</td>
</tr>
<tr>
<td style="padding-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_LineOfCreditFacilityLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 470<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/2147481544/470-10-50-6<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<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(f))<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_LineOfCreditFacilityLineItems</td>
</tr>
<tr>
<td style="padding-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_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the 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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<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(19)(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_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings 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 470<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/2147481544/470-10-50-6<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(22)(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(19)(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_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_FinancialInstrumentAxis=ooma_CreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FinancialInstrumentAxis=ooma_CreditAgreementMember</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_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</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_BaseRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BaseRateMember</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermDebtTypeAxis=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_ShortTermDebtTypeAxis=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_FinancialInstrumentAxis=ooma_KeyBankCreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FinancialInstrumentAxis=ooma_KeyBankCreditAgreementMember</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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308593740608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisition - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 20, 2023</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Receivable from the seller for working capital adjustments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 64,129,000<span></span>
</td>
<td class="nump">$ 58,353,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 126,628,000<span></span>
</td>
<td class="nump">115,205,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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,595,000<span></span>
</td>
<td class="nump">$ 3,624,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,958,000<span></span>
</td>
<td class="nump">7,124,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_BusinessAcquisitionAxis=ooma_JunctionNetworksIncMember', window );">Junction Networks, Inc.</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Receivable from the seller for working capital adjustments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,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_BusinessAcquisitionAxis=ooma_OnsipMember', window );">OnSIP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Total cash consideration</a></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,500,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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember', window );">2600Hz, Inc</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments', window );">Payment of cash consideration subject to working capital adjustments</a></td>
<td class="nump">$ 32,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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities', window );">Contingency related payments</a></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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">$ 21,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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember', window );">2600Hz, Inc | Restricted Stock Units</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued', window );">Number of units issued</a></td>
<td class="text">&#160;<span></span>
</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">423,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting 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">18 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</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,300,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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember', window );">2600Hz, Inc | Developed technology</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business combination consideration transferred working capital 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;">ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Payment of cash consideration subject to working capital adjustments.</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;">ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity interests issued or issuable to acquire 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> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued</td>
</tr>
<tr>
<td style="padding-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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 intangible assets, excluding goodwill, acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 associated with the acquisition of business during the period (for example, cash that was held by the acquired 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> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<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_CashAcquiredFromAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentForContingentConsiderationLiabilityInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, made soon after acquisition date of business combination, to settle contingent consideration liability.</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 13<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 230<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_PaymentForContingentConsiderationLiabilityInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_BusinessAcquisitionAxis=ooma_JunctionNetworksIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ooma_JunctionNetworksIncMember</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_BusinessAcquisitionAxis=ooma_OnsipMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ooma_OnsipMember</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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</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>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.2.u1</span><table class="report" border="0" cellspacing="2" id="idm140308583491616">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Business Acquisition - Schedule of Final Purchase Price Allocation (Details) - 2600Hz, Inc<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Oct. 20, 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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 1,829<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="nump">440<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_ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets', window );">Other current and non-current assets</a></td>
<td class="nump">588<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property plant and equipment, net</a></td>
<td class="nump">195<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">21,200<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillGross', window );">Goodwill</a></td>
<td class="nump">14,414<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_ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities', window );">Accounts payable and other liabilities</a></td>
<td class="num">(1,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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred tax liability</a></td>
<td class="num">(3,131)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet', window );">Total purchase consideration</a></td>
<td class="nump">$ 34,048<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business combination, recognized identifiable assets acquired and liabilities assumed, accounts payable and 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;">ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business combination, recognized identifiable assets acquired and liabilities assumed, other current and noncurrent 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;">ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, acquired at the acquisition date. 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>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 assumed at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 intangible assets, excluding goodwill, acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized as of the acquisition date for the identifiable assets acquired in excess of (less than) the aggregate liabilities assumed.</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 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 property, plant, and equipment recognized as of the acquisition date.</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 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GoodwillGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is 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 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 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/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ooma_TwoThousandSixHundredHzIncMember</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>68
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( &Z()ED'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " !NB"99,KZ!9.\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9)1
M2\,P$,>_BN2]O;35@:'+BV-/"H(#Q;>0W+9@DX;DI-VW-ZU;A^@'\#%W__SN
M=W"M#D+W$9]C'S"2Q70SNLXGH<.:'8F" $CZB$ZE,B=\;N[[Z!3E9SQ 4/I#
M'1!JSE?@D)11I& "%F$A,MD:+71$17T\XXU>\.$S=C/,:, .'7I*4)45,#E-
M#*>Q:^$*F&"$T:7O IJ%.%?_Q,X=8.?DF.R2&H:A')HYEW>HX.WI\65>M[ ^
MD?(:\Z]D!9T"KMEE\FOSL-EMF:QY?5OP^X*O=G4E>".JN_?)]8??5=CUQN[M
M/S:^",H6?MV%_ )02P,$%     @ ;H@F69E<G",0!@  G"<  !,   !X;"]T
M:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M
M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R
M>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2P]R"BPA+>!3+
MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,!
M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K
MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2
MBW <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_KFVB<"HU;3]-K
M=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K>A(5M>5 TR
M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$
MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7<K_WUE[O)I#-ZG7TZSFN4
M?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R.AQG0GS/]O:1
MI24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG LR+7E$8D19_(
M+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(R-^-B/>K;YH]
M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M
MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZ<TT#PE"\D^DJ1CVFS(Z=T)LWH
M,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.FJW"$2M"/F(9
M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+
MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T
M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+
M.7\N?<^E[[GT/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7<LW(QU2ODRG8
M.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD6R4)RU3393>*
M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W<DOJMI2^M28X
M2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-MNIW<.CB>F)&Y
M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_#
M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0
MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR
ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC
MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYN<KGHB=OJ7
M=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(CE1P&%A<RY%#N
MDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>TB42%(JP# 4A
M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF
M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'<YMZN,)%K/]8UA[Y,M\Y<-LZW@->
MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_
M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]!
MU4#E/]O4#6CV#30<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04
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
M,\X5DO'<IU<7S!JLAJ];K,N!UJ8I3HJPH=+!2&5*E R"SAVB[O'),F*AL2^
M')OJ(^K4YUH31HM[QH2C0=58!RNTN)^37=11 W_$:D="/G VJ5!I1A!'DQ=_
M(&A;%[ ,;D$9:!.P^5B;.(9P&OJ1?;DT^E)'W/ />+"O)#,#K(L#WOW"\DA;
M&I5YJ 8G\*+ X]934)MLS%!9T)>TIN']SE%-!1Q0A6_1 B2">@AG+G(?CU")
MC@S)_"/&HKB04U]*@_&1'@#S0JL-D=4I8124TE-@%+,42ZF=J/J=+55Y4Z05
M_K>Y;]:H/(:!;QCQ?(M<6#NE."E>WXDRCCH)R;KHP<A.@(B-(YHK..>6@@I,
MIS?F46V@C+HCQ25@R&<T&.JN("M%EYH,U6KCRU[+('SVM7T$O6X5$6=>M?"W
M\OTMN6FJ*J0$U_009K]E2AB)&3++L">&"(Q>QLLLJB\92!+2;PQ(+B9@=BT6
M53\.*@&GUG1=P/I_6H]3K@E#G/0@L4/J[KWED 5/3<'9.UW&.H-N\=-488]
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
MCH2M?S"H;[PIPT?ZQG@TVW"9D<3DY -XOS7X,&MN6$'WJ\W-_P!02P,$%
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
MA<6MV/FV&M3VL?)-M7@'04P^#,(4L2.'*83$&D!(5BMIFOAD3<?> P86="=
M1XPY*(2MRNU"E(I"=W@$L6X[)&Y/ H=I*A5SD>-(65VK$IGP\,#3(%1+:]6"
M8L%YB!D6&\_:*UF(SLHG2&P0(X70*)ZU(-?*M<)NL_/Q0W"?U-W3DJD$5TMR
M4,](@F];)OFZ]W//LG"IJ# 8A;YSP3 8#>O']$=+OPNL@PM#@;^./@1'$ Q,
M+#)Z$WL_N<9JR74J4&3H>8[=('E?*6!\Z42MUHIE[%!Z?CSTI4$=:B)TV9&J
M'---+X1$-3X4_,!+OL#Y(<!AY25;!.JYWX0I%\EH2Y]9H["^17X.ZV_5L5F>
M_Q]+47?HK]5@)<00+D%MYUN8S]6A1SR\,*A9,Y"<;QG)P>!](7%#),"-*#64
M$Y_5T+)[+G!C5($@1%_MB4AQY</1$."7G=O6G=U[]+S)GJ)Z11YTD="_]B';
MPD/O'F,6<N#%9_[MJY27GA9,*-5"&+/C5W>B[N1>\A@9081I?V! 3G91=]Z]
MYX[$OHF>I&=Y<& \IN=Y5@*KC>G//;,\K]%0[(H[E&H-&C7_!WF,Z98.VA6#
M@C:<;$$;IDO=!H\/='OGTW$RN "/PFF,(."<W1<^MI0\I)2'/%0>,@Z0\$48
MCAXVY"4[&&DME'E,#CO]0JQ>T?3@2!)?\]*CG?VD<-S.)V,HGQ1]7E\8O?83
M2(W(JQKSQ?&I]$;L#*9C#V! @>X0U<^HBS!G8MY)TM%'N>D@Q,6WEGNV%P^2
MIZ)\,</(-SM9CCY5F&/H+?/0/JC(<BV93 _LHBG&Q(2O>3;:#T9O]U8<"J;Q
M=#[#-4V7_2PVC=,DA;IEMNB',/%=,>&>R>/I<LDW\WBVG+_T63,Y^ "%;1O_
MF<T-A,(-WZ+#V^%+_C)\P#Z*AW\#X+38* QNM5QC:S)>S"(RX=,Z/#B]]9^S
M*^T0"'];20'B9P&LKS5JOW]@!</_-R[^!U!+ P04    " !NB"99]7 >2ND#
M  #X"   &0   'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6R55MMNXS80??=7
M#-2@2 #5UEUR:AMPLME+@5T$NVF+HN@#(XTM8BG12U)QTJ_OD+(5)YL8W1=[
M.)PY<TC.1;.M5%]UC6C@OA&MGGNU,9OSR427-39,C^4&6]I92=4P0TNUGNB-
M0E8YIT9,HB#()@WCK;>8.=VU6LQD9P1O\5J![IJ&J8<+%'([]T)OK_C,U[6Q
MBLEBMF%K_(+F]\VUHM5D0*EX@ZWFL@6%J[FW#,\O$FOO#/[@N-4',MB3W$KY
MU2X^5',OL(108&DL J._.[Q$(2P0T?BVP_2&D-;Q4-ZCOW5GI[/<,HV74OS)
M*U//O<*#"E>L$^:SW+['W7E2BU=*H=TO;'O;-/6@[+21S<Z9&#2\[?_9_>X>
M#AR*X!6':.<0.=Y](,?R#3-L,5-R"\I:$YH5W%&=-Y'CK7V4+T;1+B<_LUB6
MWSJNL((/K6'MFM\*A*76:/1L8@C?6DW*'=9%CQ6]@I7!1]F:6L-56V'UU']"
MO 9RT9[<1704\+=.C"$.?8B"*#F"%P^'C1U>_ K>=V?TX1/E_>G5?2FZBK=K
M>"=EM>5"G,'?RUMM%"7-/R]=1!\G>3F.+:1SO6$ESCVJ%(WJ#KW%SS^%6?#K
MD5,DPRF28^@_^&3'L3Y)@Y">P^N8<%,CK)74&NZ8Z-"G0BJ[IA/,D#EKI#+\
M7]976%M!R91ZL#?IC#7(%=GOL/DC-NNQMZBL#"LIJ#MH..4MF%IVFJ#TV?EH
MZ0 H#1Z&-("=CK4=-9%!/;K2AC>.D^ KA'>.\?* ZO*0ZN6>YO^T&[W!.VI@
M&]HW6-:M%'+] !'\ CF<$ $_"PL23B'QHSR',Y+#S(^3\.ENY!=9VN_F?I[&
MHTM7X:BHOPD74==\HR%UP(20)BFY%7X>Q^26^T48/:IS/XXS4D_]*)B.;A2K
M$%K6T*U;8BF$?E8X=Z)Q1K_)H,FFEL5T&HQNI&'BA9<Y@;CPBZ2G'<9^D8:.
M=Y3XTVG^;#OPBVG6;^?^-(V>WB'>TP31"%MF8<-Q2GU,B'W"G$ PS@<-31E
M5M;VB0TEGJD5(C1]6T';5IYE@X4@(?;I!O4&78\7#[[3]P'C<? L8#A.7@VH
M^?V/AQO#TCPU]!T8#CFYZDQG4_VE>[$4OG\ KH\5QENN2WJWOY IUVYM*A^6
MA'O6$3%)B:B=S17EV(G-OS"RZ@Q2/Z.J(3$G,<@**Q80T_,%5IR2&,24'S65
M*%L9<D_\-(QW";-/A)?:V>1@&E%JK]W,U5#*KC7]8!JTPUA?]M/LT;S_)OC(
MU)JW&@2NR)42A::HZN=LOS!RXV;;K3141TZLZ=,$E36@_96D!K=;V ##Q\[B
M/U!+ P04    " !NB"99<W9"RQT&  #Q#@  &0   'AL+W=O<FMS:&5E=',O
M<VAE970Q,RYX;6RE5VUOVS80_NY?<7"[K@446Y)?XJ1)@"1;L19I&S3=BF'8
M!UHZVT0I4B&I.MZOWQTE*W*:9"D&&!9%D<\]]TX>K8W]ZE:('FX*I=UQ?^5]
M>3@<NFR%A7 #4Z*F+PMC"^'IU2Z'KK0H\K"I4,,TCJ?#0DC=/SD*<Y?VY,A4
M7DF-EQ9<513";LY0F?5Q/^EO)S[)Y<KSQ/#DJ!1+O$+_>WEIZ6W8HN2R0.VD
MT6!Q<=P_30[/QKP^+/A#XMIUQL":S(WYRB]O\^-^S(108>890=#C&YZC4@Q$
M-*X;S'XKDC=VQUOT-T%WTF4N')X;]47F?G7<G_4AQX6HE/]DUK]AH\^$\3*C
M7/B'=;TVH<59Y;PIFLW$H)"Z?HJ;Q@Z=#;/X@0UILR$-O&M!@>4OPHN3(VO6
M8'DUH?$@J!IV$SFIV2E7WM)72?O\R<<2K?!2+^$"23EW-/2$RM^&68-P5B.D
M#R!,X;W1?N7@5YUCOKM_2&Q:2NF6TEGZ*."[2@U@E$20QNGX$;Q1J^(HX(T>
MP*L5@[].Y\Y;BH*_[].QAAC?#\&9<>A*D>%QGT+?H?V&_9,7SY)I_/H1@N.6
MX/@Q]"?YX'&$#\8C3 _A+A)\7B&<FZ(4>@.JGI+>P8K2][H2UJ-UH$PF/.8@
M-5Q56F^^"841G LE*>>U%!$(!VO*&WZ:Q4)F",$8('0..44=9*@)"A8BDTIZ
MR5(T./Q&;%2-3QGHH*((L:"-WLN$SE")N4(P+>= $,32(E+:>Q=1+O@5X$TI
M;4!@883M5]94RQ4LI,L(/XU'(Q@0][)482/-S85B"5 7-JGKZE47$A6T]69K
MD#6I1;^%452A'+PDZGYE*D?:N5>'O5-6ND=!N0E!^4YH,EP8TR>'WO4^WM'
M<B78,XN]BM4):^ Y))-H1D1IL!_%XZ3WV3#1L"-_>-6%%//&IKVKE;%^CPQ=
M?&<T=;N,]HZB_22NG^.T=V'T\K]W)6DT'4T@&473_6F7W!WL9!J-QI.:X#B9
M];Z$NH?YGF!O+TE[Y%YP*R1(G@RFL$%!T38=Q/7H^YTY^=-4V@.1I' >C. G
M^D_I_RD6YF!43U)56*20R%1%]0H,>QLY="D4%V&<4:P:)?,0)SN11%'V-!^P
MB% I-&-P&$ON0)FMZ)4"FKH:UI0-2;14Z:VEM5V,P4[R$E]>PG%[ZYG,.!]2
MC7.:6.<,F^_R=YX>(9U8O88S)R.]D1/)+X54*C1(8L,SDW:&LB88A!(.$8JZ
MS".7>6CS@8MTV$J#443>=R6&3JLV40,Y(A_N"DD'L^^$.'GSXR(&<)KGDA42
MB@5*W1"6-H>FPK&F;:E@ -^QJ\7,6);6J5VW]F-^V4K8);;V&K?$J8(L48<2
MQ^1$3NU9<HMA:ELG!TH$J)M32*AH3*!)_*:>=J13.%<%?<DKR[$53(/LW*T2
M';58GZW.C48_$T)V74D7K,*+WE6ZEOT!?3CL1?!69P-XV?^HK]Y>]E]1G5W)
M;+5C%U?-'5Y7%#?DA!PYX*GG4"@C1;8V'C1B7I=11X67DJ).H\I7M&!)'9#T
M).$<F?/*T5Y'$?U6=_6YUS_C"*JR24I%FXPEC9Q0;7:6EH/8;W;]N+;< LF:
M8?:V!K'+XM9ENXFZZ3:#UB>A%SP4#$O!V::?X/BM6WXP+>_TL4PXZG/4E_Y?
M#_L<$KA[3H,K2K?N1*?#/3CHG3.=4FQJXIRY=XH@=XB#R8S-'B6C)#P/X@-.
M^2A.9[U/]Q1N3L&EEO_41Q"\H833U T87=.I_FZ9-7,EETT->PXOGLW2)'V]
M,QJ%YC<FP2F$[KU;2B(Z/U.4UNZ]-?Z]=3R$^R.&?5/'[9^AM9$=&:5S0M@5
MW*._21.;?! *QAE->'I*O7J6Q#S<I^'!]("',[+:?AIF#WA(S9QZ MV]%IPV
M8VK8<=.IF[SC0"RJHE&D=51R$,WB:>^"TND09%%6]7&/0-!Y>$D"Q],$7O4N
MZXX%= *L0KX]? "X[]@[[%Q#"J2BR9<MSB#JZ?6-I)UM[W.G]37F=GE]&7Q/
M-5>2@Q4N:&L\V)_TZZ:_??&F#)>:N?%T10I#/M2BY07T?6&H'C0O+*"]Y9[\
M"U!+ P04    " !NB"99:95B@=,&  "V$   &0   'AL+W=O<FMS:&5E=',O
M<VAE970Q-"YX;6RE6%MOVS84?L^O.'"#7@!7MF4[SAU(VFQK@6Y!LK8/PQYH
MZ=@B0HDJ2<7Q?OW.(259]I*TQ5YBB>*Y?^?C84Y7VMS9#-'!0ZX*>];+G"N/
M!P.;9)@+&^D2"_JRT"87CE[-<F!+@R+U0KD:Q,/AP2 7LNB=G_JU:W-^JBNG
M9('7!FR5Y\*L+U'IU5EOU&L6;N0R<[PP.#\MQ1)OT7TNKPV]#5HMJ<RQL%(7
M8'!QUKL8'5].>+_?\$7BRG:>@2.9:WW'+Q_2L]Z0'4*%B6,-@G[N\1TJQ8K(
MC6^USEYKD@6[SXWV7WSL%,M<6'RGU5>9NNRL=]B#%!>B4NY&KW[#.IXIZTNT
MLOXOK,+>F"PFE74ZKX7I/9=%^!4/=1XZ H?#)P3B6B#V?@=#WLOWPHGS4Z-7
M8'@W:>,''ZJ7)N=DP46Y=8:^2I)SY[=.)W>95BD:^PJNOE72K4\'CC3S]T%2
M:[D,6N(GM!S )UVXS,)5D6*Z+3\@CUJWXL:MR_A9A1\K%<%XU(=X&$^>T3=N
MPQQ[?>,G](7 X*^+N76&D/#W8S$&%9/'57!W'-M2)'C6(_A;-/?8.W_Y8G0P
M/'G&P4GKX.0Y[3]<A^>U_*X=PNP8NMI>OCB,1[.36B?\F2&\TWDIBC5DPH(
MRYO?,K132.@+=9SP'5,J4?3!D4 \'$T;!1^*! MN);CVW\O*V$H4#IR&52:3
M#*3SFI>&5DFG; 5$D4*A"^N$JYPVZV :=,GFK/],F75&)BP7/E:%)-:!BS25
MO$LHM0X^U4&\LK5W>:GT&C'$#M>52<B)X"2\YB3$PY.KV^MK_S@Z>0.D2J\L
MH))+.5<(6&NP'$G9R-M,D$^@%YR;G+(2W!*.,I=*F^C*!UF2TTA^&5TM,RC%
MVFBEB![2RK,/11#\^J/<>@VA!V[BY!++^N"L?( \M!1R2P$UQ+IM"%AQX2SM
M]B$<[WWUY(/IVXM[-,2E<+%<&EP*AWNWP?^K!S2)Y'QX1S\4E&5BU@2^"%7A
MWFM9D%U=6:J!?0/7:, +PO:'O4M!Z21YX3/R4105,?G&KU%_=#""?1@-H]&$
M?N/^-([W?JV!X)$8G]!Z_;37>)7":Q@?P1OZ-(V.CO;>L1'EER=^=32*XLFN
M]:V4D.G183 ='WK3P\EP[PO!B=0PLC#8$ESJQQ4,IS,2/(J.XD;>=XMH<DE(
M;K)VSUEC'??!0 -A; -**]JZ_)%BLG/T,/95W0=*'1&]4AX7](E7)LU*GQND
M1'^4J77$_E&15ORGT#OMU/3?SWL2P<VF#0-0/X<VO+G]_+_!6B-R%[/?PQ85
M9#;E H^CV:3%%)>=D788'1PVU7X-L^$XP":.9K,NFN)16!]_#TYQ?W(P#<";
MC:%63-%;IC-5<91/,(/+B!LZ!$4'NLLR5 22 N:8";7P,F@<S4S;K,/$:Q=K
M+TZ'O<RK'#9LZ<1#4$;$SA4U2(QLD$8D9_L<!4TC=""D,%]W'8BV.#]IDA'8
MUE6&)6C[ANO(D9;T \<'7I]C(G)*U[V0RK=11=4.$."C AR:W'I4+"K22_UB
M^61(,'J6G2-X'Q"*@HQ0:GX"J?U._AK*3JEAXJT6ZK94':/G[U4#05'39F!Q
M<F$?9M%X6O<?4<K!$$H*U0OO]F (Z0;+[: ^%.1S@=[?W1/K4@N3LIWW5+^$
MBDL.542S1O[#E:F19#8J?7YI?[O$^:I*+M4^3*)A&UZ=OHVI+C:CCI<>N+HR
MV^#-Q9K*#+A8(#=_'Q9&Y^!H#/>HH-\^-0#PG8#VFCMT?2APJ9T4G@9I1%:^
M":@]K0A'7Y^7-7EE($?![Y)/O$2;U+<?0QI$62J9>%193 @/3I*+2JQL@"^9
MYI"Y(!R?R/G<Y1 8TYM$I=OAK"@K'$^*C,VF-SCJ7!14<&X="),/R1## 3*S
MA_&'E(<026<1IH\PHX18%L(7+KBW6ZK&\*+RX*U\O7RVA<UHFMEQ^@DJ:;10
MFQ).TF#*ZT\U;2\T96!.XPN?397OVXX?G!B&J5S0>942^0K3ILWP7I%X^MC>
M6%3YG((C3S8^[:*D;5BN!(T\&":[[[0LL0AN!>TG"^QB"8X.^S&1SA/I8&:A
MV#?G\08%?$@>-4U ^7V$T?N,,:,?)%WEJ&])9-RA!:)1X?'1[4,*ZC&RJYNK
M'JQM</<_$.CPX.Z&&C2;_9YV6.")R+?29ODRK'Q_@A_@33-E<E6WIU2.H)V<
M:2R5Z5M*>R)*Z82*'KNW##IWR1S-TM^8F48HT^%:V:ZVE_*+<!?=; \W^D_"
M+&E< H4+$AU&LVD/3+@EAQ>G2W\SG6M']US_F*&@-/,&^K[0=)^I7]A ^Z^*
M\W\!4$L#!!0    ( &Z()EE1RH?[@0,  )X'   9    >&PO=V]R:W-H965T
M<R]S:&5E=#$U+GAM;)55;8_B-A#^SJ^PTE/5DW+D'0@%)-A>WZ2KT'+7?JCZ
MP20#L=:Q4]LA[/WZCATV9:4%M5+DC.V9Q_/,C,>+3JHG70$8<JZYT$NO,J:9
M!X$N*JBI'LL&!.X<I*JIP:DZ!KI10$MG5/,@#L-)4%,FO-7"K6W5:B%;PYF
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
M<7O)6>\:(WN=()4K"]'O&L.9/KP^E,\3<9G:P^ZY%'JO<M:Q%#@,$AS+G-A
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
MHEF1J-.?:ZB'^[QK6D",Y=>7#/ZMV%/4(7VLJL)D:E9H^J#\ DB]0NJC%8$
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
M$! 9BX<25=9+3,BM8:I->^AO5"CV!#5XOU.UE9-- N5]+;_3A10BF"0)*Q#
M1RB-VD&V L\;U$DX>:@#:/65C;*(0X!G#W#R]L#AK?%Q0W:-I@3[X]GSDD].
MPAPHF[<#WM6W91VM)S;"Y;[ID70XW6N2!S&<C6EW.>NE;R&"'%S=?-.LS*1!
MG)B8][]#MTM\4[LH*?$30X:0^ S=_[46+C3"_<29\,Y\N+V+53FBE\.3';Z'
M<=4]E<T]0?(]@7#*;W>G_)0>1FXT!49'E!SL=^ELV8+D$R%F_ GEW8V2\GNB
M%"MZ//SA$V^'C3Y$2>R _.9C 9F\/ ZQU2H732/@)T9G;J)*+B',?OC8@3\Z
MN**5$D<;7T0Y- 2KN:UU;[N[[F5SQ=N;-Q?EMS@9%9I)RR5<D^&+DSZYYO+9
M+(*MXH5O80.NC_&QP'U=.C; ]Z7%1:!=<(+N+X#YOU!+ P04    " !NB"99
M4%!( !L$  ">"0  &0   'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6R]5G]O
MVS80_2H'#2@2P+,<QTG;S#9@IPO: 5V#>-DP#/N#DDX648I42,I.OOWN2$EQ
MBB3;@&& 8?WB/;YW]WCD?&_L5U<A>KBOE7:+I/*^N4A3EU=8"S<V#6KZ4AI;
M"T^/=INZQJ(H0E"MTNED<I[60NID.0_OKNUR;EJOI,9K"ZZM:V$?UJC,?I&<
M)/V+&[FM/+](E_-&;'&#_K:YMO24#BB%K%$[:318+!?)ZN1B/>/Q8<"O$O?N
MX!Y826;,5W[X5"R2"1-"A;EG!$&7'5ZB4@Q$-.XZS&28D@,/[WOTJZ"=M&3"
MX:51O\G"5XOD70(%EJ)5_L;L/V*GYXSQ<J-<^(=]'#M[GT#>.F_J+I@8U%+'
MJ[CO\G 0\&[R0L"T"Y@&WG&BP/*#\&(YMV8/ED<3&M\$J2&:R$G-1=EX2U\E
MQ?GEEQW:'2=/Z +6PDD'IH1KBPZU%R%Q1]=&R5RB.YZGGJ;DP#3OX-<1?OH"
M_#E\-MI7#G[4!19/XU.B.O"=]GS7TU<!?VK5&$Y/1C"=3&>OX)T.^D\#WND+
M>*L\-ZWV4F^AEPE_K#+G+?GES^<$1[S9\WB\ABY<(W)<) TGT>XP6;[Y[N1\
M\L,K;&<#V]EKZ,L;S*DL<$C:&DWW.=)"\0Y^-AY^IZ6\*DSCOTUXY/_?SC"&
M3YK>[;#.T')13D?@*X0KJ87.I5"'4!M/+A.V<+ V=(&CJ]5F?0S2N1:+YP?>
M-H7P"$>KS>UQ@/]^\G8$^TKF%<6!U![96> -R+JQ1(1:16.L%YE"<+AEUE!(
MEROC6LM?[UIIHY@1-%92+Y+J@4A;TVXK$$4AV?;$_#'*@<BHHX&36RU+F0O"
M[+'QGAJD0S>&7TBWZY@S.2Q+#$T'J'E"26@$^H#".LAP*[5FJ:+TE+@/E/:0
MP9.S49=%7I LCQA"0_^&LK&7OI+ZWT'-1B$,:##)%%PV7M4$64L?*LB\!6DI
M8H5=95I5$"Z(IE&2DFO16^.:*(9S94 HQ<DC73VW)O8,9-;! N5@ 4J*CQF/
MDUV:NA'Z(>1H)U0K0M$Y1E,GZE,8K#6H.; 6F6;PS.:V<\7[WA6EH;9)%2.-
M4N>F1O#B_DDMLX?.!3QKTV:T["%K':T$1X3(@9ZZP(@!!/]T2Q(R;HTC5MXA
M4:DI(6P&R$G=UEAN'9UTRYZUF!O2KV1HH^PULY,%TIBXEW(5V!C#.&(C*4^.
M((2'FK=D 7>M8$8B^(A,BE0>541[Y$@^E_H)8C3JHW(BU0A9_)T[.YE],?\'
M4S%7SDGOJYCB,=P<FBV.SJ,T(OW-!/_02,]UWO1@SZS1;L/)P$%H07'['-X.
MAX]5W',?A\>3RV=A*5L.%)84.AF_/4O QM- ?/"F"3MP9CSMY^&VH@,46AY
MWTMC?/_ $PQ'LN5?4$L#!!0    ( &Z()EDTV67@^0,  )X)   9    >&PO
M=V]R:W-H965T<R]S:&5E=#(R+GAM;(56VV[C-A!]]U<0ZFZQ"ZC1779<VX"3
MM&B+;A'$:?M0](&6QA*Q$JDE*3OIUW=(7>(DCO,B\3)SYGI(+@Y"?E4E@"8/
M=<75TBFU;N:>I[(2:JHN1 ,<=W9"UE3C5!:>:B30W"K5E1?Z?NK5E'%GM;!K
MMW*U$*VN&(=;251;UU0^7D$E#DLG<(:%.U:4VBQXJT5#"]B _K.YE3CS1I2<
MU< 5$YQ(V"V==3"_2HV\%?B+P4$=C8F)9"O$5S/Y-5\ZOG$(*LBT0:#XV\,U
M5)4!0C>^]9C.:-(H'H\'])]M[!C+EBJX%M7?+-?ETIDY)(<=;2M])PZ_0!]/
M8O R42G[)8=.-D&+6:NTJ'MEG->,=W_ZT.?A2&'FOZ$0]@JA];LS9+V\H9JN
M%E(<B#32B&8&-E2KC<XQ;HJRT1)W&>KIU1WL@;= *,_)#>Q 2LC)L/CIGFXK
M4)\7GD931L'+>MBK#C9\ S8E7P37I2(_\1SRY_H>NCCZ&0Y^7H5G 7]KJPL2
M!2X)_3 ^@Q>-<4<6+WHG[IT4-;E&7R7V!^9>E^3:9ATD^6>]57;]WU,)Z/#C
MT_B&2W/5T R6#I)%@=R#L_K^NR#U?SSC?3QZ'Y]#7VTZ"A&Q&VMUPQ0M"@D%
MU5C![>.XL1&MS.!4!.=M#/KY2V#9;R@+3#*!#%5F#[W1):945$AUQ@ORB7%<
M$:W"[E*?YY/[4@(\ZPRR80_/%B98Z$=;Z+<'DTV[59ED3<=K[%R37Y:!&GW[
M0))+-TE3,XC=:6@&03!U+Y/$C/RI.YTFDULI\A;+;B $NBY'_1B5(Q*Y:3@E
M,S>=1F3JQI$_N1>:5D=6TM@-PDMC9>9&262PPQ2U9M9>XH9^<J;<R5CNY&PI
ML#\S,"UJ \8T_X&G]3K+1,NUPD)GP/:&J>2*5I2?+O8[%OJ>5^10"HS/]BPW
M10W\CT1(4@L)QC)'RW2P+)\L'P#WJ>J+K^:3M4+QHVI2WIJ.->4;";8FP8Q\
M)%%$/I[)4CIF*7TG2W4C.!C'T-&7A]FIG)S'>W4<-I(AZQA&U/>\-;1E%6H6
MRF2IH8\U/&4&=9$!--^;HAC9&H]I0XRA@5!,%)S9LF)#:Y",7CRY_JJMF1I4
M_C-\0VR"36$+@%<3[HH]IM60$*'J@9#9<+QA?<Q\A*72!"7V#(EW<:YB;Q,.
MVWSJ!E'0#?PH/D&JP"=AV%,G'V)[XI !B .KGJ23WT&I.=Y\*,3U:W$C'$96
M. XF-R^V7<(%_V%0_F#:"S\G*>@=W9G8BX5]&2AB.[N[/L?5\?&Q[N[<)_'N
MY?*%RH)Q12K8H:I_,46NR>XUT$VT:.P-O!4:&]\.2WQ @30"N+\30@\38V!\
MDJW^!U!+ P04    " !NB"99G)#U_0T$  #D"0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970R,RYX;6R55EMOVS84?M>O(-2B: "ENE^<V@8<M]U:K%N09-O#
ML =:.K:)2J1'4G'R[W=(R:JZ.0+R0I'4.=_YSHWD_"CD-[4'T.2QJ;E:N'NM
M#U>^K\H]-%2]$P?@^&<K9$,U+N7.5P<)M+)*3>U'09#Y#67<7<[MWHU<SD6K
M:\;A1A+5-@V53]=0B^/"#=W3QBW;[;79\)?S ]W!'>C?#S<25_Z 4K$&N&*"
M$PG;A;L*KZXS(V\%_F!P5*,Y,9YLA/AF%I^KA1L80E!#J0T"Q<\#K*&N#1#2
M^*?'= >31G$\/Z%_LKZC+QNJ8"WJ/UFE]PNW<$D%6]K6^E8<?X;>G]3@E:)6
M=B3'3C9#BV6KM&AZ95PWC'=?^MC'8:10!,\H1+U"9'EWABS+#U33Y5R*(Y%&
M&M',Q+IJM9$<XR8I=UKB7X9Z>GE-:\I+('>V M:B.0@.7"OR]IYN:E 7<U^C
M&2/LESWD=0<9/0.9D:^"Z[TB'WD%U8_Z/M(;.$8GCM?1)."7MGY'XM C41 E
M$WCQX'-L\>*7^OS7:J.TQ$+Y^YS7'6AR'M0TSY4ZT!(6+G:' OD [O+-JS +
MWD]03@;*R13Z<D12;,EG_H!3(1FH<T2GH>[W0+:BQFYD?$=4UQV*4%X1;5-.
M#E(\L JPN#5EM;78M1%4V %=[+H3@VEHL%08)WHO6H48ZN)J3,]9&74',_AD
M,_B%\A9[W\R=3XPSA*G(3HA*D=<D#+P@CLTD\C#3SBT]8JEKD(PBB]2+@H3D
M7IX6SKW0M":LM_-D5/!WG)O)S,N+:"+DZ1#R] 4A_TWO09)U*R7NV&#]*OAE
MV:]72H$^FXMI&QUJ.4+E(U1J4:="^ &V@+(54=0DKA1-PY0Y+Y4WH+XF,R_(
M OP67IK/G!L)!\HJ H]XL"OH,B\LD<3+PPC',,^=M<#H2LVP(I"4!CR!2V /
MID+(6P5 W)_NUR[9F&/]@KQY541A])Y$7I3FSG_<LFZ0$/.2XY@429\_<4[,
MIC)-9V:2><DLGW1R'"ZK&<RBOAH&'CUPZLW2" G&0_UT]O\?<02(0B]($H.4
M>UF83I13-I13]H)R6I6E;-&EC^,D_%ACOS"Z8373SS3YM+43_IDDGWRMO^-/
ME=@-?9)X6E@ "3758U3;LWG7=QC9('1N8=>BD&G*+<#I6'D$$_\D3[&XTEGA
MW.V%U.026[LA^+Z05)NSJ :\7L>\2(P%&9@QB9RUO0Q!7IY8C 5#+\Y2',.P
MZ+,>>V$0HKDBROMTTQ?%Q!1!XL5%82:9EQ;9N2+P1S<O<MO9]X6IT9;K[A(>
M=H<GS*J[N;^+=^^?KU3N&![$-6Q1-7B7X]$ANS=%M]#B8._QC= 8"#O=XS,,
MI!' _UN!;=HOC('A8;?\%U!+ P04    " !NB"99.9?R&LT#  #$"   &0
M 'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6R-5MMNXS80??=7$&I0Q( :W2].
M;0-.-MG= ML&FW2+HN@#(XTM8BG22U)QTJ_OD+(5NW6,?9&&P[F<X1QJ--U(
M]54W (8\MUSHF=<8L[X, ETUT%)](=<@<&<I54L-+M4JT&L%M'9.+0_B,,R#
MEC+AS:=.=Z?F4]D9S@3<*:*[MJ7JY0JXW,R\R-LI/K-58ZPBF$_7= 7W8'Y?
MWRE<!4.4FK4@-)."*%C.O$5T>959>V?PA<%&[\G$5O(HY5>[^%C/O- " @Z5
ML1$HOI[@&CBW@1#&MVU,;TAI'??E7?1;5SO6\D@U7$O^!ZM-,_-*C]2PI!TW
MG^7F VSK<0 KR;5[DDUO6Q0>J3IM9+MU1@0M$_V;/F_/8<^A#-]PB+<.L</=
M)W(HWU%#YU,E-T19:XQF!5>J\T9P3-BFW!N%NPS]S'Q1?>N8@II\%(:*%7OD
M0!9:@]'D_('B2H^G@<%$UCRHMD&O^J#Q&T%S\DD*TVAR(VJH#_T#!#B@C'<H
MK^*3 7_I^ 5)(I_$89R>B)<,52<N7O)&O/\5ZY-?\0*<WSQ7O*N96)'W4M8;
MQOF8_+5XU$8A>_X^=A!]GO1X'GNC+O6:5C#S\,IH4$_@S7_\(<K#GT]4D0Y5
MI*>BS^_QAM8=UB"7Y)HJ]6*!?Z&\<YH3G?W--*"(::@8ZCQ6V^GL#PV0E9):
MDR>;TL<+5G5MQZG!G+25RK!_:'_S1$VJ'3YGK"U N@/(7@'2'N &E)7)4G+\
M:B 5F4"XLM,82H\O1PL7 %GQ,K"";'54=/AQ&=2C&VU8ZS!QM@3RWB%>[$%=
M[$,=CO$[[4;OX D_;&O<-U U0G*Y>B$Q^8D4Y P!^'E4HG!.4C\N"C)&.<K]
M)(T.=V._S+-^M_"++!E=NYN/35+ 74;=L+4FF0N,$;(T0[?2+Y($W0J_C.)7
M=>$G28[JB1^'D]&#HC4005L\=0LL(Y&?E\X=88SQF0Z:?&)13";AZ$$:RH]T
MYHPDI5^F/>PH\<LL<KCCU)],BO]LAWXYR?OMPI]D\0G.9P/GL^_F_&MK;SO3
M(6,.6G3SC(-+PS%BGTZQ,(?,\I%Z0&!(MNR3'5 <^F1(6'7DT)@^1>9;IBL\
MZS^!*O?%M/3;I[%KQ0B19,@&.V=KY,69Y4P46W5.,C]'IJ-8H!CFI15+DN"1
MAU:<H!@FV%.\]4"7!MU3/XN2;9-WS3O6G6!OLB =5VY^:E+)3IA^R S:840O
M^LGT:M[/]T]4K9C0A,,27<.+ KN@^IG9+XQ<NSGU* URWXD-_F: L@:XOY32
M[!8VP?#C,O\74$L#!!0    ( &Z()EF4#&4$* 0  *X*   9    >&PO=V]R
M:W-H965T<R]S:&5E=#(U+GAM;*56;6_;-A#^KE]!J&O1 $[T9LMV:AM(L@5K
MD:!!G*T8AGV@I9-%E!(UDHJ3_?H=*4664]O="V!81^KNN3O><R?.-D)^53F
M)D\%+]7<S;6NSCU/)3D45)V)"DI\DPE94(U+N?94)8&FUJC@7NC[L5=05KJ+
MF=V[DXN9J#5G)=Q)HNJBH/+Y$KC8S-W ?=FX9^M<FPUO,:OH&I:@?ZGN)*Z\
M#B5E!92*B9)(R.;N17!^&1M]J_ K@XWJR<1DLA+BJUE\3.>N;P("#HDV"!0?
MCW %G!L@#.//%M/M7!K#OOR"?FUSQUQ65,&5X%]8JO.Y.W%)"AFMN;X7FY^A
MS6=D\!+!E?TGFT8W1N6D5EH4K3%&4+"R>=*G]AQZ!A/_@$'8&H0V[L:1C?)'
MJNEB)L6&2*.-:$:PJ5IK#(Z5IBA++?$M0SN]^%R!I)J5:W(#F)PB[Q_HBH,Z
MF7D:X8V2E[10EPU4>  J)K>BU+DB/Y4II+OV'H;5Q1:^Q'89'@7\5/,S$@4#
M$OKA\ A>U.4:6;SH %Z;X>\7*Z4ETN&/?3DV$,/]$*9%SE5%$YB[V ,*Y".X
MBW=O@MC_<"3 81?@\!CZ8MET!A$96=95Q0'9KRDGEY33,@&RM&WZL6QZT9#Z
M'CC5D!(MVOKM2^E[3GN>5JVG9B"PGB>Y]<2;<]Q01?"7"8Z=C<1A)=&YJ!4M
M4W5R[EPHS,/!&C[;&GZB96UR0QE?*=#*V7+/(A)I.NA49*<U+JC5(3^08#28
M1)$1Q@-_&#@/P@1J+=+#6C>,KAAGFH%REKF0^E2#+(AXY9)OU= V&HP#OWD.
M0^=&E.OO6P7A((Y&)(@&\3CN!_<*.X@'T7#4!#@,)LX7.R\@/:6/"+[&[,',
MT*T3ZWET%I-GH%*1^,QOI&\M4Z8249>:8)" BA%YB_\A>7N$DJ..DJ/_1,DK
MJG)RC87_]W0\ZG!_A^VX3HSKS+C^7_Q\R"7 SL@B2_:TL]%C[T'!L2=1T6<3
MG?$F7]/%5'\ZFIC2#X(HL,^I/\5G./##B7._A_82$K$NV5\8%(8-3TE.2ZRT
M02_Q2_>:D&+%V=J>@W'V[LTD#,(/.U)DB3U$QR$Y0HNXHT7\3VEQ2W4M&Y;C
MZM7WA/3Z<!\7CGNQ(V1[Y.8S,,"/7]_?L=;<@(1C#+C&OD$^_6;["PMN4'IC
M:M>Q@W^CMDE3D$T5HY'9CG%@3 +?B&,4I_'4B!,L[SBTNU,CXD1YR#$BFF%G
M8R7BR&_'159C1F"^[JRHBS:1CE'!=##Q8^<&E#HGK*AJ;4F!(* T>8\.AW%
M3IP[TRTX!!XIK\$<S>$IM(\ 7N\.48!<VYN2(G:P-->);K>[C%TT=Y"M>G.3
MNZ5RS9")'#(T]<_&V/&RN1TU"RTJ>R-9"8WW&ROF>*$$:13P?2:$?ED8!]T5
M=?$W4$L#!!0    ( &Z()EGB?JMZ @0  # )   9    >&PO=V]R:W-H965T
M<R]S:&5E=#(V+GAM;*56;6_;-A#^[E]Q4(<N 3R]67Y):AMPLFQK@6)&W*0?
MAGV@I;-%E!)5DHKC_?H=*5EQBL3!,,"P2.KNN>?>>)KNI/JF<T0#CX4H]<S+
MC:DN@T"G.19,^[+"DMYLI"J8H:W:!KI2R#*G5(@@#L-14#!>>O.I.UNJ^536
M1O 2EPIT711,[:]0R-W,B[S#P2W?YL8>!/-IQ;:X0G-7+17M@@XEXP66FLL2
M%&YFWB*ZO!I:>2=PSW&GC]9@/5E+^<UN/F8S+[2$4&!J+ *CQP->HQ 6B&A\
M;S&]SJ15/%X?T']SOI,O:Z;Q6HJO/#/YS)MXD.&&U<+<RMT?V/KC"*92:/</
MNT8V(>&TUD86K3(Q*'C9/-EC&X<CA4GXBD+<*L2.=V/(L?R5&3:?*KD#9:4)
MS2Z<JTZ;R/'2)F5E%+WEI&?F*R/3;[D4&2K],]Q\K[G9P]D7MA:HSZ>!(1-6
M,$A;N*L&+GX%;@2?96ER#3=EAMES_8"H=?SB [^K^"3@IUKX,(CZ$(=Q<@)O
MT/D[<'B#5_!:#_]:K+515!)_O^1C Y&\#&';Y%)7+,691WV@43V@-W__+AJ%
M'TX03#J"R2GT^<IU!_\'-<@-N/3 GY6KX(6M8&XXZI=(OP%[!*3]%E=63YUA
MHT(]#B9'T/P1BB:/:/,(E(5]EP78,0WTVTA!+:TO>U]=Z6/VR^(!%74R++9;
MA5MFL+?*&84(;AY1I5PC+!5/$3Z61G'JZQ3NF:BQ=\9+LBMKS<I,G\,2%3A%
M>/ZB=\4$*TF?N=A\8F5-]\@3KZ@?C2+X":+0CQ)ZQOUA'/=^5ZPD<O#^W22.
MX@]TWJYZ!U89G,'@ L[IU="_N.A=6R/"'2?N-(K\./G1^K.0D.EHTIB.)\YT
MF(2]>]36,I$';&S9OGH%(!R.2?'"OX@/^B>J:=A5T_ _5-,M\:$$6$Y- =R5
MW.@WZNJT@=O5W?^NG[9(?BRCM])-,1H/;<P'_CCITFPS89,_\4>30P+.8!P.
MFDS&_GA\G. X:LX';V4X[B>C85,+XP&TP.2]!EZFHK9>ZL8/4DUE0?Z#=D$V
M.3,N+->RJ%BYIQO>Y#F*#$ADC3D3&Z>#RM 0!2PJ(?=(0$:"9H;KS=ZIT^W/
MB[H@5&9J(RD4ACTV8'1_\W)+0Y)N-X4T,XWN6R]H/%&^,ECOCPGX\.6(37H(
MABU3A:965H/$J5U;CXB(58_#: A+"E$?=CE/<R*?LH+"]<"X<)5=4[:;$JA(
M# RJ0KNJV-2$B\"UKJTY_Z72#HZF6(%JZV:UIEC6I6D&6G?:?0XLFBGX)-Y\
M2WQF:DL7# C<D&KHCZF(53.?FXV1E9N):VEHPKIE3I\TJ*P O=](:0X;:Z#[
M2)K_"U!+ P04    " !NB"99L0P5.0X#  #'!@  &0   'AL+W=O<FMS:&5E
M=',O<VAE970R-RYX;6R-56U/VS 0_MY?865H BDC[VW#VDJ4L3<)#5&V?9CV
MP4VNC85C9[9+8;]^9R?-6@D04F6?[;OGGJ<^7R9;J>YT!6#(0\V%GGJ5,<U9
M$.BB@IKJ4]F P).55#4UN%3K0#<*:.F":A[$83@,:LJ$-YNXO6LUF\B-X4S
MM2)Z4]=4/<Z!R^W4B[S=Q@U;5\9N!+-)0]>P /.]N5:X"GJ4DM4@-)."*%A-
MO?/H;)Y:?^?P@\%6[]G$*EE*>6<77\JI%UI"P*$P%H'B= \7P+D%0AI_.DRO
M3VD#]^T=^D>G';4LJ88+R7^RTE13;^R1$E9TP\V-W'Z&3D]F\0K)M1O)MO,-
M/5)LM)%U%XP,:B;:F3YT_\-K N(N(':\VT2.Y0=JZ&RBY)8HZXUHUG!27322
M8\)>RL(H/&489V8+(XN[=W/459(+6>-=:^K^KN-;NN2@3R:!P336.2@ZR'D+
M&3\#.2174IA*DTM10GD8'R"]GF.\XSB/7P3\NN&G)(E\$H=Q^@)>TFM.'%[R
MG.:**N@T7]-'+#%#SI6B8@W._G6^U$9AO?Q^2GR+G3Z-;=_0F6YH 5,/'XD&
M=0_>[.V;:!B^?X%YVC-/7T*?W4I#.7GVSBX?K WD!@JY%NPOGC.!+G@/HG46
M6G)64H.+A<')ZM5$KLBW!I0#T4]I?@TK[5@M':MBGQ5TK-0!*U,!NNV8%?O,
M] $SV3,C6ZH)_E:28R_1Y-C!R(VFHM0G9X/;2@$<%!]9L(>#C0'6TJ.KI>>-
MP874QF96< ]B ^2(Q./(CEF"8Y9:.POCP8+B R&8'!^DN@/#Q)I$?AB&),W'
M:.6CG.3Y:'"#=4!543G7$D&Y;%RA17X:)CA&64AB?Y3:,<Z'@T\@4#-W_K3$
M5\]L/=KV95&C",=1G)#$'V*>Q$_B?/#*.S@BJ9_E&<X8'*<XC_T\&^,\\J.G
M'U>PUUQJ4&O70C7";X1I^TR_VW?I\[8Y_7=O6_P556N&]\AAA:'AZ2CSB&K;
M9KLPLG&M:BD--CYG5OBE 64=\'PEI=DM;(+^VS7[!U!+ P04    " !NB"99
M*5I$JE #  ".!P  &0   'AL+W=O<FMS:&5E=',O<VAE970R."YX;6R-56UO
MVS80_NY?<5"'(@:TZ-U.4]M G+18A[4PZFS[,.P#+9TM(12IDE2<_/L=*5F)
M,<?H%^GNR'OXW N/L[U4#[I$-/!4<Z'G7FE,<QT$.B^Q9OI2-BAH92M5S0RI
M:A?H1B$KG%/-@S@,)T'-*N$M9LZV4HN9; VO!*X4Z+:NF7I>(I?[N1=Y!\/W
M:E<::P@6LX;M<(WFSV:E2 L&E**J4>A*"E"XG7LWT?4RM?O=AK\JW.M7,MA(
M-E(^6.5+,?="2P@YYL8B,/H]XBUR;H&(QH\>TQN.M(ZOY0/Z9Q<[Q;)A&F\E
M_[LJ3#GWKCPH<,M:;K[+_6_8QY-9O%QR[;ZP[_>&'N2M-K+NG8E!78GNSY[Z
M//R,0]P[Q(YW=Y!C><<,6\R4W(.RNPG-"BY4YTWD*F&+LC:*5BOR,XLETU4.
M3!1P5_'68 '?J!,N_I!:C^&+R&6-L$(%ZY(IA(M[MN&HQ[/ T-D6(<C[<Y;=
M.?$;YTS@JQ2FU/!)%%@<^P?$>2 >'X@OX[. O[?\$I+(ASB,TS-XR9"(Q.$E
M;^!]8DI48J=?1?O/S48;17WS[ZEX.[CT-)R]2]>Z83G./;HL&M4C>HOW[Z))
M^/$,V70@FYY#7]S*NFD-<WTMMW"ZB+:&<",ZY7^E)#="J0E@;63^<"K"LQQ.
M1WA?(FPEIZM.N01CNP4T&DU&94HPM)P?<]\,W(N>NR"ZW'*W1JM4'?>&N.L#
M][SCKBUWN*@$0<M6DX?V 9]R;$R_UX*\>!9T1\;7H_M2(1YU)*RKIR/#B!KL
MV378V\+H6UNC8D:JD;LUW-V:GNXO< &Q'R53&),<3R-G2?UX.G&6"\@R&(_N
M4$BZUPZDJ^/>31*BQ!X)?(=#K#8"#?'$S[*)/\U2B#,_24(_2S-K33[$?I)%
MSAI/_3C+1BMI4)B*<>+KTDL3\("S5;(&_-%6YAD:SH2&]^^NXBC^"),P]=-I
M,NC]?W1HK@/!7W^&X(<D\\/HZ@V"RY/5/T[D2_5LTL++\,KECX2HMT2'C)(M
M)/'4#0M>S4@JVLZ]!)JHM\)TXW*P#H_-33=C7[9W+]57IG85Y8OCEES#RVGF
M@>JF?Z<8V;B)NY&&YK<32WHP4=D-M+Z55)=>L0<,3_#B/U!+ P04    " !N
MB"99 !9ZSQX#  #\!@  &0   'AL+W=O<FMS:&5E=',O<VAE970R.2YX;6RU
M54UOVS@0O?M7#-3%(@'4Z,-RXF9M W;:;+-H4:-)V\-B#[0TMKBE2)6DXJ2_
MOD-*5ES ,=!#+Q(YG/?X9D0^3;9*?S4EHH6'2D@S#4IKZ\LH,GF)%3-GJD9)
M*VNE*V9IJC>1J36RPH,J$:5Q?!Y5C,M@-O&QI9Y-5&,%E[C48)JJ8OIQ@4)M
MIT$2[ (?^::T+A#-)C7;X"W:3_52TRSJ60I>H31<2="XG@;SY'(Q<OD^X3/'
MK=D;@ZMDI=17-[DIID'L!*' W#H&1J][O$(A'!')^-9Q!OV6#K@_WK%?^]JI
MEA4S>*7$%U[8<AJ, RAPS1IA/ZKM6^SJ\0)S)8Q_PK;-S;( \L98575@4E!Q
MV;[90]>'/< X?@:0=H#4ZVXW\BI?,\MF$ZVVH%TVL;F!+]6C21R7[J/<6DVK
MG'!VMF@,18R!>?ZMX8;[5IW<L95 <SJ)+&WA$J.\HUNT=.DS=.?P7DE;&G@C
M"RQ^QD<DK=>7[O0MTJ.$_S3B#(9)"&F<9D?XAGV]0\^7/<.7GL?QV^\AW,C\
M4'5'P>Z"7)J:Y3@-Z 88U/<8S/Y\D9S'?QV1EO72,L\^_)5/\>\[BL&-Q<K\
M=TAP]AL$CWK!HZ.]O"6'*!J!H-9PS243L&QT7M(=@:7F.<)<")4S5\<AZ4?)
M#TN_*Q'6BEBW7&[ NE/:V0G_C@:L6_9"ZIV0V@MAO9 0F %6_$\W"PLXX9)
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
M:=VIU@-.]JH5VQ N&CMUFXKN'J@$B.=;0OAI( VT_Q<$/P%02P,$%     @
M;H@F6:"UE1*% @  %P<  !D   !X;"]W;W)K<VAE971S+W-H965T,S(N>&UL
MK55=;],P%/TK5I 02*/Y:LLTTDAM!V*(H:D3\(!X<).;QIIC!]MIA\2/Y]I)
M0SNEY64OB7U]S_$YU]9ULI/J09< ACQ67.B95QI37_F^SDJHJ![)&@2N%%)5
MU.!4;7Q=*Z"Y U7<CX)@ZE>4"2]-7.Q.I8EL#&<"[A313551]7L!7.YF7NCM
M RNV*8T-^&E2TPW<@_E:WRF<^3U+SBH0FDE!%!0S;QY>+2<VWR5\8[#3!V-B
MG:RE?+"3FWSF!580<,B,9:#XV\(2.+=$*.-7Q^GU6UK@X7C/_L%Y1R]KJF$I
M^7>6FW+F77HDAX(VW*SD[B-T?IS 3'+MOF37Y08>R1IM9-6!44'%1/NGCUT=
M#@#(,PR(.D#T%# ] 8@[0.R,MLJ<K6MJ:)HHN2/*9B.;';C:.#2Z8<*>XKU1
MN,H09](5;$$T0*C(R344H!3D9!]\0Y929"",HJ[FLB!?\&+-LTPVPFC,RX!M
MZ9H#65!.,96\N@9#&=>O$]^@/+N)GW52%JV4Z(24*;F5PI2:O!<YY /XY7E\
M&)TA\+$N?7&B?7$6T5G&3PT?D3B\(%$0C8<$_0=.Q2GXD9RX/ZO8\8U/\ W5
M_0]9NDL"ZLE9K9A^.%R=#QW(V?UL [G2-<U@YF&'T*"VX*4O7X33X-U0,9Z)
M[*@TX[XT8\<>GRC-@/<?GS&'W!BH],\A[^/G]/Y,9$?>)[WWR=EK<>Q=H?<+
M4H.R,>S#0]9;OC!PA+;/;]-@%%XF_O;0TV!6'/=9K5C_H/?@/=NXEJR)NZEM
M&^JC?=>?NV;G_TMOGXQ;JC9,:,*A0&@P>HL*5-N&VXF1M>MD:VGP4KMAB2\7
M*)N ZX649C^Q&_1O8?H74$L#!!0    ( &Z()EGGPR0O^P(  +8+   9
M>&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;+5674_;,!3]*U:&)I" ?/6+KHT$
MK2:8F%;1L3U,>W"3V\8BL3/;:=F_GYVDH2EN!Z*\M+%SS\DY-_<Z=[!B_$'$
M !(]I@D50RN6,NO;M@AC2+$X9QE0=6?.>(JE6O*%+3(.."I :6)[CM.Q4TRH
M%0R*O0D/!BR7":$PX4CD:8KYWRM(V&IHN=9ZXXXL8JDW[&"0X05,0=YG$ZY6
M=LT2D12H((PB#O.A=>GV1VX!*")^$%B)C6NDK<P8>]"+FVAH.5H1)!!*38'5
MWQ)&D"2:2>GX4Y%:]3,U</-ZS?ZY,*_,S+" $4M^DDC&0ZMGH0CF.$_D'5M=
M0V6HK?E"EHCB%ZVJ6,="82XD2RNP4I 26O[CQRH1&P"WM0/@50#OI0"_ OB%
MT5)986N,)0X&G*T0U]&*35\4N2G0R@VA^C5.)5=WB<+)X Z60'- F$9H#'/@
M'"*TWCQ#(Y9FC *5 K'Y\X#C,4A,$G&B0N^G8W1\=(*.$*'H>\QRH3C%P)9*
MI7Z6'5:*KDI%W@Y%7_+D'/GN*?(<KV6 C_X#QW07W%:YJ1/DU0GR"CY_!]\S
MSY><8[H 5<H2_;I5T>A&0BI^FYR6U"TSM>[0OLAP"$-+M:  O@0K^/C![3B?
M3+X/1-;(@E]GP=_'_I0%7F;!9+9DZ!0,^O18!F[7;;D#>[GIPA3EM#MU5$->
MJY;7VBOO%H3HJW91$M5;B5X@MN3K-L5Z_I984Y2S8:DAMEV+;;\JEZ>(,GI6
MB3=I;3]7T=L2:@AIFU5V:I6=O2JG^4R$G&3E8:M.AZDJ*1*"L:/W4KVVS@]$
MUG#=K5UWWZ_;NX?,PH'(&EGHU5GHO;G;>Z8&\K>[W13E^"US:5[4\B[VRIMP
M%N6A+*KRFXR!F_3MI7CMRS@06<.MZSQ]HIWW*\J*^T").!1;,Q,;PXK[YL*L
M*!I?&&>K+ TQGK=5E/;&4*4GVJ^8+P@5*(&Y CGG777F\G)(+!>29<6<-6-2
M36W%9:P&:^ Z0-V?,R;7"SVZU:-Z\ ]02P,$%     @ ;H@F64%JY&N; @
M:@8  !D   !X;"]W;W)K<VAE971S+W-H965T,S0N>&ULO57?3]LP$/Y73AF:
M0"K-CQ;&NC82T$UC&J*B8WN8]N FE]3"L3/;;=G^^IV=-.JDP",OB<_^[O-W
M=_9YNE/ZT:P1+3Q50II9L+:VGH2AR=98,3-4-4I:*92NF"53EZ&I-;+<.U4B
M3*+H/*P8ET$Z]7,+G4[5Q@HN<:'!;*J*Z3]7*-1N%L3!?N*>EVOK)L)T6K,2
MEV@?ZH4F*^Q8<EZA-%Q)T%C,@LMX<G7F\![PG>/.'(S!1;)2ZM$9-_DLB)P@
M%)A9Q\#HM\5K%,(1D8S?+6?0;>D<#\=[]D\^=HIEQ0Q>*_&#YW8]"RX"R+%@
M&V'OU>XSMO%X@9D2QG]AUV*C +*-L:IJG4E!Q67S9T]M'@X<DN09AZ1U2+SN
M9B.O<LXL2Z=:[4 [-+&Y@0_5>Y,X+EU1EE;3*B<_F][C%N4&@<D<YEB@UIC#
M?O(4+O.<N^PQ 3>R.0(NE\=SM(P+ _$)@5KX@ ;N&'!9P@*U1\L,X6XE>.G]
M!O#QJ:9RT!;?>.5PJH E+9F"90U@:9FV0*'@!)(H&9]&%Z=1#$? )=QR(0AD
MIJ&ER)W^,&NCO&JB3)Z)\LM&#&$4#SPE/"SG<'QT\C]-2(GKLI=TV4L\[^@9
MWCDWK"PU-N'!7=&E[N=7@L*-Q<K\ZM/;\([[>=U-G)B:93@+Z*H9U%L,TK=O
MXO/HPPNJ1YWJT4OL7<UQ7PRK8(5TQ3)52OZ7)@JM*K+WU:P/JJFZ:O;6H=GY
MO=_9-81M.AH/SZ?AMD?ON-,[?A6] [>0H;34;?JT-RKBZ$!\-!S'_>+/.O%G
MKR>>J[Q/^,L*X@0J)>W:]!V=\*!UN"Y\RW3)I0&!!9%%PW?$K9O.UAA6U;Z;
MK)2EWN2':WH,4#L K1=*V;WA&E3WO*3_ %!+ P04    " !NB"99)XKQ6'H"
M   -!@  &0   'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6RM56%/VS 0_2M6
MAB:0:),FH6PLC02MT#J-"='!/DS[X";7QL*Q@^VD\.]W=D)4MI9MTKXT/OO>
M\WMG^YILI+K7!8 ACR47>N(5QE1GOJ^S DJJA[("@2LKJ4IJ,%1K7U<*:.Y
M)??#(!C[)67"2Q,W=ZW21-:&,P'7BNBZ+*EZN@ N-Q-OY#U/W+!U8>R$GR85
M7<,"S&UUK3#R>Y:<E2 TDX(H6$V\\]'9-+;Y+N&.P49OC8EULI3RW@;S?.(%
M5A!PR(QEH/AI8 J<6R*4\=!Q>OV6%K@]?F:_=-[1RY)JF$K^C>6FF'CO/)+#
MBM;<W,C-1^C\G%B^3'+M?LFFRPT\DM7:R+(#HX*2B?9+'[LZ; %&\1Y V '"
MOP5$'2!R1EMESM:,&IHF2FZ(LMG(9@>N-@Z-;IBPI[@P"E<9XDQZ29DB=Y37
M0*Z ZEH!'I'19$#.\YS92E-.YJ*]+K;NAS,PE'%]A"FWBQDY/#@B!X0)<L4X
MQP2=^ 9U678_ZS1<M!K"/1H^U7Q(HM$Q"8,PW@&?_@%.Q3ZXC]7H2Q+V)0D=
M7[2';P9+0Q:0U0K]@SXFYPT:IDL. RS#8$$YD.^?$43F!DK]8Y?A=H=X]P[V
M99[IBF8P\?#I:5 ->.G;-Z-Q\&&7_?]$]J(845^,Z#7V]*LT> $RJ@M"1=X.
MX*%F#58![\DN[RWA>T=HFTB3CL;#<>(WVYYV))T.3_JD%UKC7FO\JM8O4@RP
M%=WC!<7#<C+-$U[-!K0I]ZF-?Q,2#:-?Q+ZZ[;\>@+_U6&VCO*)JS80F'%9(
M'PQ/3SRBVN;3!D96[OTNI<%NX(8%]FM0-@'75U*:Y\"VA/X?(/T)4$L#!!0
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
MOFHN]<<8"!.@G\^Y/A>:CKGNV\^[[ ]02P,$%     @ ;H@F66V#*7:A!@
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
M*X(CPG4%]?T#4](N3[2#:@OCXG]02P,$%     @ ;H@F6=1!M7I8 P  $@H
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
M+B=9?DJ4#2WFQ6D\$AK/]N)VAE]?($T'?#\10K\US %??<_%?P!02P,$%
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
M')8E ]P6FC(RI"HC%[BQR"6O-JBI] TPJB$A6JP8]D>@:<[4 7+=3D9D?^^
M[)&<DZ^9F"O*$]5W-89N G#C.LSS*LS@F3!#<B6XSA09\P22%OQH-_YX!]Y%
MR1K=@I5NY\%.PD]S=D1"_QT)O*#3$L_PY?"P+9W_\S[^9^\;8H3-)@HM7_@,
M7UWX'V=3I24>_9]M!:XH.NT4YCH\526-8>#@?:= +L")WK[QC[T/;>J^)MGH
M-<G&KT2V48=.4X?.+O;(GM"2/I@#JPB>42*:X\ULC=H*4W$>6T[35A91KWO2
M=Q?K>C^U\?W0WS0:M1CUO-ZFT?BI$6["1W<;>7>;O+L[\[;=[5#,#N<*"%4*
M,'L)L4AY_ANO)KQZX#[.*$_!BL*Q?6T)0\24Y:F]T5HUVNG_;S?O:Y*-ND_T
M#'UO2_.G-IV>%VQI[JXUD0)D:KNW(K&8<UU=!<UJ\T XLWUQ:_W</QWZ+>LC
M?%!4_?^1OGJ-7%&9YEQA*6;HRCMZCP'+JL-7$RU*V\*F0F-#M,,,'T4@C0%^
MGPFA5Q/CH'EF17\ 4$L#!!0    ( &Z()ED,2&F 0P,  (@+   9    >&PO
M=V]R:W-H965T<R]S:&5E=#0V+GAM;*V6:V_:,!2&_XJ555,GT>9*@ XB]:)J
MFUH-];)IFO;!D -8=>+,=J#\^QTG-&4A#1/:%Q(G?H^?]P3[G.%*R">U -#D
M.>&I&ED+K;,SVU;3!214G8H,4GPS$S*A&H=R;JM, HT+4<)MSW%".Z$LM:)A
M\6PLHZ'(-6<IC"51>9)0N;X +E8CR[5>'MRQ^4*;!W8TS.@<[D$_9F.)([N*
M$K,$4L5$2B3,1M:Y>W;I%H)BQC<&*[5U3XR5B1!/9O Y'EF.(0(.4VU"4+PL
MX1(X-Y&0X_<FJ%6M:83;]R_1KPOS:&9"%5P*_IW%>C&R^A:)849SKN_$ZA-L
M#'5-O*G@JO@EJ\U<QR+37&F1;,1(D+"TO-+G32*V!&[PAL#;"+Q_%?@;@5\8
M+<D*6U=4TV@HQ8I(,QNCF9LB-X4:W;#4?,9[+?$M0YV.OF8@J6;IG-P 9D.1
M$W)??E$B9N26ZEPRS? YCFISR0VC$\;+U\=7H"GCZ@,&>+R_(L=''\@182EY
M6(A<T3160ULCKUG5GF[8+DHV[PVV+SD_);[;(9[C!0WRRSURFKXEMS%+5:J\
M*E5>$<]_(]X-* 70J:>A4^5AW2%:D F0,65QAUPS-:6<_  J7Q*Y)C_/)TI+
M_//^:LI'"1 T Y@=?:8R.H61A5M6@5R"%;U_YX;.QZ;L_*=@?^7*KW+EMT6/
M,.5=W.7F'(E!-EDM]6&A-V?-,G('?G=H+[<MM"YRH(6@LA#LLQ V@9>JWA:X
MU_.<&GAKZ /!NQ5X=Q]XKPF\NP/N#\)!#;PU]('@804>[@/O-X&'N^!]MY[Q
MUM '@O<J\-X^\$$3>*_AKQ)X-?#6T >"]ROP?BOXPP*P]L]T\Q;M[^ 'H5_/
M>^L"!^(/*OQ!.[[0>,#.<CQ;P11'EN0)X45MRN@:FPW=6'4&.[[<0=\):\9:
MES[0F.N\EF6GU9HI-F>$)5FN(<8ZBI\(E&ZLH<Z.G1,_"-V:G?;U#O6SU6:X
MK7[&)FBJR9+R'$PS47XF_MI"-'IS=ZM$Z ?U,M$TK1>X_6I:"6UOM4FF1[VE
M<LY2A2@SU#FG/3S\9-GVE0,MLJ)SF@B-?5AQN\!6&:29@.]G0NB7@6G&JN8[
M^@-02P,$%     @ ;H@F6=>^H0#> P  <A$  !D   !X;"]W;W)K<VAE971S
M+W-H965T-#<N>&ULM9A;;]LV%(#_"J$56PNDEBC?,]N XV18!W0+ZB5]IJ5C
MBXA$NB1EI_OU(RE%OLF,8S@OMG@YEX^'/#K48,W%DTP %'K.4B:'7J+4\MKW
M991 1F2#+X'ID3D7&5&Z*1:^7 H@L17*4C\,@HZ?$<J\T<#VW8O1@.<JI0SN
M!9)YEA'Q\P92OAYZV'OI^$87B3(=_FBP) N8@GI8W@O=\BLM,<V 2<H9$C ?
M>F-\/<%=(V!G/%)8RZUG9%!FG#^9QI=XZ 7&(T@A4D8%T7\KF$":&DW:CQ^E
M4J^R:02WGU^T_V'A-<R,2)CP]#N-53+T>AZ*84[R5'WCZS^A!&H;?1%/I?U%
MZW)NX*$HEXIGI;#V(*.L^"?/Y4)L"6@]]0)A*1#N"[2."#1+@:8%+3RS6+=$
MD=% \#429K;69A[LVEAI34.9">-4"3U*M9P:316/GA*>QB#D;^CN1T[53_09
M36U4Z7\@$9\C.PG]L[0+/S8+3Q750Q]O01&:RD]:XF%ZBSY^^(0^(!_)A @]
M3!EZ8%3)*]VIG_]->"X)B^7 5]IS8]^/2B]O"B_#(UYVT%?.5"+1'8LAWI7W
M-7&%';Y@WX1.A7_E:0,U\14*@[!5X\_D%7'"CHGON-.LHM"T^II']/V=9S,0
M=JGMTM6M4*&A5:_!G/9KN201##U]G"6(%7BC7W_!G>#W.KP+*=N!;56P+9?V
M48%XA6Y@01FC;*'/84I8!'74A:JN5652TFJ$<0<'03#P5]M 3I-G K4KH/9)
M0'?/("(J]S=H =(^ /G<[!]R."V=R=&I.#HG<4Q,,-)ZC,XA1NN0PFGG3(IN
M1=$]+1HL?F5O=6OV%NX=TCCMG4G3JVAZ)]$\@E00(YT^$13;C,S26JK>(570
M[AY2.>V>2=6OJ/K.?/?=OETUSW@%0E<+U=%!]X)&^E<G0TM>!]B_9"*\D+*=
M5<#!YN4;.*-[\CJ<F"U+<[V=X#=P:R_T;J_.I=XJ.?"EJ)TIM32#PRW<=J/?
MWZ=U>G,N;;BA#2]%ZTJ\I94=6(P;X4%LG=Z<2[LI9+"S='A3;%]-T*6M7>:@
M$?;VF=^CG,&;>@:["YHW,)^>QDN;VT>YW^B'^^3O4??@3>&#V\X\/EXL!"R(
M O2%*4'UY2Y"CR3-ZXDN5-N4Y.]1*>%-J83=M=+;R M=G:U8AD%K_X5<-ZL=
M;B*^Z^FF',+N>NBHIV_:C=V3""Y:*?E;M]H,Q,)>]B6*>,Y4<<&M>JL/"F-[
MC?8WTXNO$5^)T&]/B5*8:]&@T=6;1Q07_**A^-+>D6=<Z1NW?4R Z$NQF:#'
MYYRKEX8Q4'UF&?T/4$L#!!0    ( &Z()EF>E,[7YP0  .0?   9    >&PO
M=V]R:W-H965T<R]S:&5E=#0X+GAM;+59VV[C-A#]%4(MVET@C6Z^IK:!Q%+1
M%,TVB+'=AZ(/C$1;1"312U)V4O3C2TJ*+K',6%LZ#[$N,V?(,^201YSM"7UB
M$4(</"=QRN9&Q/GVRC19$*$$LDNR1:EXLR8T@5S<THW)MA3!,'=*8M.QK)&9
M0)P:BUG^[)XN9B3C,4[1/04L2Q)(7VY03/9SPS9>'SS@3<3E W,QV\(-6B'^
M>7M/Q9U9H80X02G#) 44K>?&M7WE.Y9TR"W^Q&C/&M= =N61D"=Y<QO.#4NV
M",4HX!("BI\=6J(XEDBB'5]+4*.**1V;UZ_HO^2=%YUYA PM2?P%ASR:&Q,#
MA&@-LY@_D/VOJ.S04.(%)&;Y?[ O;$<C P09XR0IG44+$IP6O_"Y)*+A('"Z
M'9S2P3G5P2T=W+<.@R,.@])A<*K#L'3(NVX6?<^)\R"'BQDE>T"EM4"3%SG[
MN;?@"Z=RH*PX%6^Q\..+%2?!4T3B$%'V(_"_9IB_@)_ =1ABF4@8@]NT&(XR
MK1\\Q"&.V4=A\GGE@0_??YR97#1#@IE!&?*F".D<">F".Y+RB $_#5'8X;]4
M^X\4_J;H?L6!\\K!C:,$_"V++X%K7P#'<@9=[?E_[M[I[FZ'N_^>>RK<K:[H
M+3+<:D"X.9Y[PH!X'0^?"$? PRR("<LH G_]+IS +4<)^[LK_T6$07<$6?JN
MV!8&:&Z(VL80W2%C\<-W]LCZN8M\G6">3C!?$U@K38,J30,5>I$F0+9R6C*P
MH3#EG7/I1@G3-Q<%V#@'DTO0;F'-S%V3X'<M?$T-:K$VK%@;*EG[E"6/B *R
M!BR" EY>!21)1&EC.:&8L0R%(!.5A0)_=7_?1:DR1E]*AP>$B35>_+WA]=#,
M[C#S-36M1>ZH(G>D)/<!;3,:1&+5/N"UB\4";-3HT61J'_1HJ8S9=_KK!/,U
M@;6X'E=<CT^8_K1B'&PI$44@N1#/Y/80IQL ,QX1BO\1X[EA"!.2I;PK(>.#
MA+A=8VQYHIVG[$%?LC6!M<B>5&1/E&0?JP-*K[YU0">8IQ/,UP36HGY:43\]
M^VYDJC--.L$\G6"^)K!6FFRKEA&6<HY\R169*#6-BH0#I%AJU6ML&6[2J#+C
M2W?XIA2=9.655M/6XGDY>K-TJCOXK00V=)BM+C+)-B8O"(&BM/^1[^PZF5'B
M]!W/6M$\K6B^+K1V1IPZ(\[9:T\90E>R=*)Y6M%\76CM9-6JU5:JK<7U9D/1
M!HKLX)13G#(<@!V,L[P"[1"3I>E5+:%G1 /,NO62.D[OC+D'FZ7.O5*'W:!K
M?Z^K=6V6:]%IJU7GLBC@JV-[>K5[;_)THGE:T7Q=:.U$U#K6'IZ_-FG5L5K1
M/*UHOBZT=K)J76Q_LS"^*'='G?D9'6C^Z<2Q#_9 )YEYZC;V9O0<XM>NU:^M
MEK\]/S78AY)UVJ5L3[3SU*WKS>4YM*U=BUM;K6[OX#-.L@3\"]ZM[EH%KU8T
M3RN:KPNMG9):]-KG5[VV5MFK%<W3BN;K0FN?'=7*UU$KWV.?XIK?WXY_=%.#
M]TV35C1/*YI?HAUN<>OJ6F3 ;)QF)HAN\F-D)HJ\H+ XU*N>5D?5U_D![9OG
M2_O**PZ<:YCB_/L.THW0""!&:P%I78[%!H$61\K%#2?;_,STD7!.DOPR0E#,
M1VD@WJ^)F([EC0Q0'>PO_@-02P,$%     @ ;H@F6832]5)0 P  8@L  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#DN>&ULM9;_;YLZ$,#_%8LW[6U2&\"0
MD'8)4M-]>T_:5#5J][,+EV#5V)EMDFW:'S_;I"3O!4@V;;^ ;7SGSQUWYYML
MA'Q4!8!&7TK&U=0KM%Y=^K[*"BB)&H@5</-E(61)M)G*I:]6$DCNA$KFXR 8
M^26AW$LG;NU&IA-1:48YW$BDJK(D\NL,F-A,O=![6KBERT+;!3^=K,@2YJ#O
M5C?2S/Q&2TY+X(H*CB0LIMY5>#D+8RO@=MQ3V*B],;*F/ CQ:"?_Y%,OL$3
M(--6!3&O-5P#8U:3X?B\5>HU9UK!_?&3]K?.>&/, U%P+=@GFNMBZHT]E,."
M5$S?BLU[V!HTM/HRP91[HLUV;^"AK%):E%MA0U!27K_)EZTC]@0BW"& MP+8
M<=<'.<K71)-T(L4&2;O;:+,#9ZJ3-G"4V[\RU])\I49.IW,MLL="L!RD^AN]
M^5Q1_16=H[G[2?0;*"06Z!:4EC33D".W']UQJA6ZLAZEFII-+UZ#)I2IET:V
M8_>+V_F=>CGQM:&V9_O9EG!6$^(.PA'Z(+@N%'K#<\C_*^\;:QN3\9/),]RK
M\-^*#5 4GB$<X!@]0SY2!9'&B/K5<T+4.#5R)T0=)WRLR@>0UG/S%I4U8ZTA
M;M=@<_%2K4@&4\\DFP*Y!B]]_E<X"E[U\,4-7]RG/:VISI#](V@&2\HYY4LT
M(XSP#-#W5D_4V+7BQ"FV&;].<9 ,@R"8^.L6HF%#-#R)Z)TDW 9.'\+P "$,
MP[@38=0@C$Y"N#?A>X1@=$!PG@11)T'2$"0G$5S;O\".,"2'##CL1!@W"./3
M(\,DW*EA,3X,BWC4'187#<Y%;R)]<D75>.)J#=)<$G5\G)M*!^@MH1+=$U8!
MNC')YLC;T"[^0**%P:Z\!KT._5D+SEKS<5>D6NMGC3#>SXAHD,3MO@_WKH;P
M-[/OTO<(\?92PGO(X\%HW$&,=\3X-Q,WV7X$&!\"AWB0)!W$NYLB["WTOT"\
M5QV.,$<MS-$ =\7%[O8(^Z^/GV<^J"1'R./#@ X'2?0_<'^O[2E!+EUSIU F
M*J[K#JA9;1K(J[IMVFVON\\/1)JL4XC!PH@&@\1<,K)NZ.J)%BO71#T(;5HR
M-RQ,$PS2;C#?%T+HIXD]H&FKTQ]02P,$%     @ ;H@F6311D/1R!   RAD
M !D   !X;"]W;W)K<VAE971S+W-H965T-3 N>&ULS9E=;]LV%(;_"J$50PNL
MT;=L9;:!)-*V%BL:Q.UV,>R"D6A;""5Z)&VG^_4E*4669$:(-U[D)OHZYR$/
MS_$;'6IV(/2!;1#BX+'$%9M;&\ZWE[;-L@TJ(;L@6U2))RM"2\C%)5W;;$L1
MS)53B6W/<2*[A$5E+6;JWBU=S,B.XZ)"MQ2P75E"^NT:87*86Z[U=..N6&^X
MO&$O9ENX1DO$OVYOJ;BR6TI>E*AB!:D 1:NY=>5>IFXD'93%'P4ZL,XYD*'<
M$_(@+S[D<\N1,T(895PBH#CLT0W"6)+$//YIH%8[IG3LGC_1?U'!BV#N(4,W
M!/]9Y'PSMZ86R-$*[C"_(X??4!-0*'D9P4S]!8?&UK% MF.<E(VSF$%95/41
M/C8+T7$0'+V#USAX0X?@&0>_<?!?.D+0. 0O'2%L'%3H=AV[6K@$<KB847(
M5%H+FCQ1JZ^\Q7H5E2R4):?B:2'\^&+)2?;P_EHL=0YN2"GJCT&5P??@"^$0
M@V<-TD=YCL =RLBZ*OX5SXM*F%2YO"V-*T9PD4,N+I9<'$1]<0;("GS>(JH@
M#+Q-$(<%9N_$@%^7"7C[YAUX(T%?-F3'8)6SF<U%G'*V=M;$=%W'Y#T3DP\^
MD8IO&$C%7'*-?S+N'XWXVV)]VT7VGA;YVAL%?MSA"^"[/P'/\0+-?&Y>[N[K
MPOE_HZ?_>?3>8OAMQ?F*YS_#2\LM)M\0 DM$]T4FCAM($=!4V!7&)*M//Z^Z
M=7:+:$&D,1/U]-?O8@#P0907^UM7*_5L OULI Y?LBW,T-P20LO$E)"U^/$'
M-W)^UB7*)"PQ"4L-P7HI#=J4!F/T1D3N50:S3@9UZ:A)D2+)_V+[11#&X<S>
M=Y?YU,B/9.UVC9)3HVD<3OM&Z:G1Q.V0>N&&;;CA:+BR[J2,4;1'U0[IHAP%
MG%MT)F&)25AJ"-;+0M1F(7I5.A*93*E)6&(2EAJ"]5(Z:5,Z,:8C-6G2^6%[
M4W<@(QJ;T!^HR*E-& PXJ<;&\?0:,FU#G8Z'"C%B0+S?B)<Y^H!X4:UU48Y"
MSBTZD[#$)"PU!.ME(FXS$;\J'8E-IM0D+#$)2PW!>BEUG6-7XQA3D@;5_7F[
MCN,,M$1C%<2#MXU$AXHG\4!.-%9Q/-'KB=MIY-S1D._$,D*:;92HY.+5!).M
M[+BT(8^BSBU"H[3$*"TU1>LGQ3LFQ7M5XM),QU1B3=(2H[34%*V?V&,3ZXXV
M5.<)C'^J"H'C#P5&8^6&SE!A3JV\2> ,%49CY<71,Q)S;//<\3[O5U0A"K%2
M&)B7154P+C=R]MH>:!QV=BV:I"5&::DI6C\MQW;4#5^7R!CM;HW2$J.TU!2M
MG]ACA^N.=EOGB4QTLM/AQNZP(])93;QA3Z2Q\J/ARTZJL_*]>" R=F=OND1T
MK3X*,!'.KN+UIF%[M_WP<*6VVP?WK]W+&U=S/Y$?*M1>^!%??^7X!.FZJ!C
M:"6&<BXF(INT_G!07W"R53OC]X1S4JK3#8(YHM) /%\1PI\NY #MYYO%=U!+
M P04    " !NB"997CZY?Z "  #X!0  &0   'AL+W=O<FMS:&5E=',O<VAE
M970U,2YX;6Q]5-MNVS ,_17"*X866.O$N?2RQ$"2;EB'%0@:='L8]J#8C"U4
MECQ)CIM]_2@Y\3+ S8M-4KR<0XF<U$J_F!S1PFLAI)D&N;7E71B:),>"F2M5
MHJ23C=(%LZ3J+#2E1I;ZH$*$4:\W#@O&91!/O&VIXXFJK. 2EQI,511,[^8H
M5#T-^L'!\,2SW#I#&$]*EN$*[7.YU*2%;9:4%R@-5Q(T;J;!K'\W'SE_[_"=
M8VV.9'!,UDJ]..4AG08]!P@%)M9E8/3;X@*%<(D(QN]]SJ MZ0*/Y4/VSYX[
M<5DS@PLE?O#4YM/@)H 4-ZP2]DG57W#/QP-,E##^"W7C>WT;0%(9JXI],"$H
MN&S^['7?AZ. :/1&0+0/B#SNII!'><\LBR=:U:"=-V5S@J?JHPD<E^Y25E;3
M*:<X&Z^L2EXNY\0KA84JZ*X-\^VZA%F:<B<R 0^RN7YW<'Z/EG%A+N ,N(1'
M+@29S22T!,<E#9-]Z7E3.GJC]!@>E;2Y@4\RQ?3_^)!HM%RB Y=Y=#+AUTI<
MP:#_ :)>-(3GU3V<GUV<R#MH>S3P>0=O]2AG&J&C1S.MF<R0WJB%^0Z._99L
MY\VSFND4?GZCE/!@L3"_NAK5U!]VUW=S>6=*EN TH,$SJ+<8Q._?]<>]CR?8
M#5MVPU/9XV>I,5&9Y'\(=G),#U^=C#1[@EDZM HJN47C9..X7JX]5^8X=CZ
MIO+85W;K81M'MY-PVX%VU*(=G42[Z !HX(B!VJ*&V@^C@T8:[19PJ+G,H$3-
M5=H%]739"';(M($!%,V;[=] RG:FJ__AT306J#._<PRUMI*V&<S6VJZU63/-
M_]R;G?C(=,:E 8$;"NU=71-*W>R91K&J]+.]5I8VA1=S6LVHG0.=;Y2R!\45
M:)=]_!=02P,$%     @ ;H@F67B"?W7Z @  H@H  !D   !X;"]W;W)K<VAE
M971S+W-H965T-3(N>&ULK59=;]HP%/TK5C9-G;0UGX2*020@3.ND2E6[;@_3
M'DQR :N.S6P'V'[];"=D%%+:;KR [=QSCL^]CG/[:R[NY0) H4U!F1PX"Z66
M/=>5V0(*+,_Y$IA^,N.BP$I/Q=R52P$XMZ""NH'GQ6Z!"7.2OEV[%DF?EXH2
M!M<"R;(HL/@U LK7 \=WM@LW9+Y09L%-^DL\AUM0=\MKH6=NPY*3 I@DG"$!
MLX$S]'N3V,3;@*\$UG)GC(R3*>?W9G*9#QS/; @H9,HP8/VW@C%0:HCT-G[6
MG$XC:8"[XRW[1^M=>YEB"6-.OY%<+0;.A8-RF.&2JAN^_@2UGX[ARSB5]A>M
MJ]BXZZ"LE(H7-5COH""L^L>;.@\[ ,W3#@AJ0+ /B!X!A#4@?*Y"5 .BYRIT
M:H"U[E;>;>)2K'#2%WR-A(G6;&9@LV_1.E^$F7-RJX1^2C1.)9<LXP6@+W@#
M$KU'PSPGIH"8HDM6G4)3SK,4%"94OM4A=[<I.GO]MN\J+6](W*R6&E52P2-2
M(;KB3"TDFK <\A9\>AP?'\&[VG;C/=AZ'P5'"3^7]!R%_CL4>$'4LI_Q\^%A
MFYW_4Y_\L_J#9(3-00@M7_CD04 ID1GELA2 O@^G4@G]-O]HJW?%&+4SFANN
M)Y<X@X&CKS )8@5.\N:5'WL?VI)]2K+TE&23$Y$]*$O4E"4ZQKXMB])E60J^
M(N9^;BM%Q1);%O-M6"51>.%Y7M]=[2;Y,"R(NP=AZ6%8-PX/PB8MHIZW&_;
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
MVJL,#&5<OT83;4WUX<<$N6*<HY&>A08=M<>%>>?4TCL5/^)40JZD,)4F%Z*
M8@"_.HV?GL"'*%"O4GQ0:1F?)/S<\A%)QF](',63(7_^#YX]'9Z<B";I<YXX
MON01O@NJ!!/;XPS_7&RT45B$OX:RY>DFPW2V,9WKAN8P#[#S:% ["-*7+\;3
MZ,.05,])ECT3V3\R3GH9)Z?8T[4T( RCG-^3PA8/-C"B(6\5E@J6 -SEO,7[
M1THE:V(J(+FLF];XTI&E!^&^P(KCMN(:S(>KGZ$D>&?.G#.VF>_2:(2W87>L
M[1-LLB&;:6_CE0B/&DH-:NL:LT;_6V%\U?2K?>]?N);W8'V%;X)OX7]I_(-R
M1=66"4TXE$@9C=ZA1\HW:3\QLG%M:R,--D$WK/!= V4-<+^4J'\WL0?T+V7Z
M!U!+ P04    " !NB"996MHC\S@#  !_#   &0   'AL+W=O<FMS:&5E=',O
M<VAE970U-2YX;6R]5VUOVC 0_BM6-DVMM#8)KZ6#2!14K=,ZH;*N'Z9],,D!
M5AV;V0ZTTG[\S@Y-84VA5*Q\('ZY>^[N.9]S:2^DNM53 $/N4BYTQYL:,SOU
M?1U/(:7Z6,Y X,Y8JI0:G*J)KV<*:.*44NY7@J#AIY0)+VJ[M8&*VC(SG D8
M***S-*7J_@RX7'2\T'M8N&*3J;$+?M2>T0D,P5S/!@IG?H&2L!2$9E(0!>..
MUPU/>V%@%9S$#P8+O3(F-I21E+=V<I%TO,!Z!!QB8R$H/N;0 \XM$OKQ>PGJ
M%3:MXNKX ?W<!8_!C*B&GN0W+#'3CG?BD03&-./F2BX^PS*@NL6+)=?NGRQR
MV6;#(W&FC4R7RNA!RD3^I'=+(E84PMHS"I6E0N6E"M6E0M4%FGOFPNI30Z.V
MD@NBK#2BV8'CQFEC-$S8- Z-PEV&>B;JR31E!O-B-*$B(3TI#!,3$#$#38Y(
M-TF8Y9MR<B'R4V/9/^B#H8SK0Q2Y'O;)P?O#MF_0'XOJQTO;9[GMRC.VOV3\
MF%3#CZ025&HEZKTMZE0\I^XC"P45E8**BL.KOH"*[A,J^DS'7.I, ?GY%37)
MA8%4_RJ+.C=3*S=CZ_)4SV@,'0\+3X.:@Q=]>!<V@D]E'.P);(V1:L%(=1-Z
M]$V*HYB*&#@=<2!,S)$<J>[)+%/Q%(N'Q(^<E3&1PS<<O+U0YE$]<+^V/U\-
M\JE<&*[+K?E?*_RO;?2_&\<J@X1P1D>,XSG&/.(9)IA'C:ZOI+?,^1R[N>+4
MOVYOM/[*W-2+V.I;<]-[S,T0X5D,I#M1 #8?>(^8*?EN[TO,4298["I7DX&2
M<Y: (G_()1,LS=*RX#<:W_4,[PELC:=&P5/C;:JZL4]&]@2VQDBS8*3Y?ZNZ
M^:0PPK!55M8;_7AEE"=%E"?;HB0;Z^/&UD>/RRPI-E]6&AOM[GH0]@2V1E&K
MH*CU-J71VB<C>P);8R0,'MNA8)?B*"L),@*S !#DDN*FZSY<ZW0.(Y5A*VQ7
MZJ7=4+#U-;?L>S;ZN"L'_DIW:%MS='O"\$7 88SPP7$3KV>5=[OYQ,B9:QA'
MTF#[Z893_$( 905P?RRE>9C8'K3XYHC^ E!+ P04    " !NB"99'A@XZ/P)
M   "/0  &0   'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6RU6VUSV[@1_BL8
M7>[&GE$DODBVD]B>L<USFUY2>^S+]4.G'R 2DEB3! . <M2Y']\%0/'%)F&Q
MA?(A%E_V ?8!L-A=+,^?*7OB:T($^I$F&;\8K87(/TZG/%R3%/,)S4D&3Y:4
MI5C )5M-><X(CI10FDP]QSF9ICC.1I?GZMX]NSRGA4CBC-PSQ(LTQ6Q[31+Z
M?#%R1[L;#_%J+>2-Z>5YCE?DD8AO^3V#JVF%$L4IR7A,,\3(\F)TY7X,_ ]2
M0+WQ1TR>>>,WDJHL*'V2%Y^CBY$C>T02$@H)@>'/AMR0))%(T(_O)>BH:E,*
M-G_OT&^5\J#, G-R0Y-_Q)%87XS.1B@B2UPDXH$^_Y64"LTE7D@3KOY'S^6[
MS@B%!1<T+86A!VF<Z;_X1TG$/@)>*>"]$("&NP7\4L#?MX59*3!3S&A5% \!
M%OCRG-%GQ.3;@"9_*#*5-*@?9W+<'P6#IS'(B<O;.,-9&&<K=,48SE8$QE1P
M]!Y=15$L1P8GZ'.FYY<<IZ. "!PG_!A>>2 ;FFRD[ TC\#:ZQ6&<Q&(+S[X]
M!NCHW?'Y5$ G95/3L.S0C>Z0U],A%WVEF5AS]&L6D:A#/C#+GQCDIT!.Q9"W
M8^C:,P+^#6<3Y)R-D>=X;I<^;X@7(.X[2GS6I<Y;X@F(NUWB+6W\:KQ]A3?K
MP2M'ZFK%B!KJCAY=&Q&D(?K(<QR2BQ%8&D[8AHPN?_G)/7$^=;%C$RRP!-9B
M;E8Q-U/H?@]S7^ :W2U?S?5_J@>?!4GYO[K8G-EDTR988 FLQ>:\8G.^SSS$
MNWF(X@S,C;8Q$1:DBTDCXE F;8(%9EWO0C&!]3M&<A'[!O).*O).C(!?\8\X
M+5*TH PDI0$.,7069F,7;4:LH;39! LTV(D"DP[*YG+NZ'_GTTT'/Z<5/Z=&
M?JY?\0*N  ]9G,OYU<61$6\H1S;! K.F=QF"V447A*D))N?7&(DU03<TS7&V
M'2/,RVE"V!C!0B.P\&"Q"8HPO BK[_V68(;"<CUF$>(D+)CDK%Z<1[_\=.9Y
MSJ>7NX>Z[7XZ!J=%K-$-K.#_@$N(KG'VA/X^N9JHYJ\B\%MB+AB6+AX(-Q'5
M504CFT\(;-QL@GZ76KQH#^6,;F(82P0>"2B@N@KZL,H3*?58[JSSBY[OK';5
M8B$;0\_K.%PW>0,7:UORAHH<2;; 1UU!/U9@G!!.:0&]H4OTSG<F#CAF20(S
M:UP"Q5F8%+*7&+US&\_!NUZ\K[HF54B(@!'A$DGWO-2[[(7D(P9W3'/"5:\
M'!Q\3E1W!17@H(4T36.A/3>MD*C)JS8J4,*LRKRE"O3UW^"<2X&0,'#Z,F@G
MTTXAGZ!;:*B:6M'K9NLQ4U025'!X30U;^+V(N<(9JZB@7*BQ5$5J3 &&(9@8
MA"GE6$Z9[&I>P"].^,1@0L\J$W$V:/\9@Y<KUP872+7UAKTP@@^U%S;! K/:
M7RC..N9(/5C/,/PP6F 1XI(/6,.BN33DTG%//\&<S?40PF,2JR'#FCORO8!Q
M@WDCI:X2@,GD[6LY:1_40"8%UP_S/(E#O$@(^HK9"J;8$1@,"-N@V])*=?;Q
M&,$D^IVP%#VJY8_N-M""C.]0'<VH=HY&CW>W#Z/C_[=!O2B[-(DU[!I:EU,'
M5M%1?*Q;VADVQ57.(%A6[(SAC?*5)8G4#%^JI4262Z*"8$VBZK(SF3L_HUQ2
MFV5%.E;+ ^1+@  BL2V2.C9DW(G3E-%]5^_L>MPU3#M+2BLNEQ67ZFV@*2\6
M20RA9H066R6D4!OF72YNZ& 4\SS!6XF6H9NOOZ*_, J6YYIDX3K%[*FU(\ K
M7V*P7B2JR(*1>2("R7@6W2=8R.BS'()7PR<-RFY@)'?UT.BI'DM"O/G/JF/=
M,T!"5-I44IZD<8*^Y51/"AH"00Q4('*4I7$F&Z(-9YEFT!MOW#(CI7#EJ/'*
M?'-)XEPWTC3YT#2#D8GE8,#8Y& \<</ PZ2I4(M,V52PCHI&Z$F7V8?;CF*@
MGA(&^_FALI\?C(;DGK 0NH-7BHYV_SA2.:&>+;G+G!K;&FI.;8(%&LQU&SXJ
M[)*.-^_V4%VGSKLX>_JHC,C\W%M>O!EN*$=6T8(2K>G(>^[<X,B[C?24NU>H
M(Q.=*-6&@1'P!,*U6D0P^>1J$=MJX?%.]HRM#&;/?:7OR8NXI23&4K-M\KR:
M/&]0L@?]J8Q<)T%&I,$$V40+;*&U6:PS9JY_D,2/:S6/9A4ML(76IK1.I;G&
MW%*']\UZ<CYFH,$D6LV?E6C2^C4W!Z_'YM6I,7=8;FR,_L L5BY++TU6<V-6
MT8(2[>4>>CKKX:G.@KGF--CK-,\8W16""_#UY%T=VG;2934G9A4M<%]GQ<Z,
M>VF=%7/-R:*.[:!RESM9LIH5LXH6V$)K4UEG#]RSP^P)5A,'5M$"6VAM2NN
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
MVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:<Z10J[4+!XUA])
M1-MC0[!:+#Y +AEFM[UD%J=SI%>(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2
M?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'<?VD-/IKV,BM'I;
MZ/EQ:%0*CMQC)8QQ8K3^-8+)#^Q^ %!+ P04    " !NB"9944HO>KT$  #K
M)@  #P   'AL+W=O<FMB;V]K+GAM;,6:6W/:.!2 _XJ&EVT?6/ M;3.E,R20
M7682PA0FKQW%%D$36Z*23)K\^AZ9LI6I.;,O)WDREHW]^<@ZGR[^_*3-X[W6
MC^Q'52H[ZFV<VYX/!C;?B(K;O_56*#BRUJ;B#G;-P\!NC>"%W0CAJG(0#X=G
M@XI+U?OR^7"MA1F$.]J)W$FMH- 7W$GQ9'\?][ML)ZV\EZ5TSZ->\[L4/59)
M)2OY(HI1;]AC=J.?_M5&OFCE>+G,C2[+42_:'[@3QLG\C^*EAUSQ>]N4.'[_
ME0/(J'<VA NNI;&N.:.Y/@?&G8"3]WNUTU>R=,),N!/_&%UOI7KPEX&G& 2/
MT<3AL-T'\=S\GS#J]5KF8J+SNA+*[>-H1.D!E=W(K>TQQ2LQZAU.85P5;*H<
M!(G-U/Y2<*Y_4KCUK-@_M0/<((;F7,(!,RL:<#K(R]OY9#I?3B<,?BUOKV>3
M\0IV+L;7X_GEE 60,0(9OPGD<@6;F^D\@$P0R.0-(;_% 62*0*9O"9D$D!D"
MF=%"+O@SVUFV$*;YN\H%FTB;E]K61@2(9PCB&2WB3%E9",-6AA>07]C8&*X>
MA/^7#0@_((0?: EO=\+L?(KVV>>"6VF97K.%$1;^QUT ^1&!_$@+^57LA*I%
MPS@1:V&,*-BOPH#P$T+XB9;PBDO#[G@)D#>"^Q?PN(ZC(9:]A[1X%[QLVD>C
M0W:IJZU6QWRH78CU,LZ_U])7Z@Q>.O7@[\[&UHHV(::6B-@MMUMAH!3:\#74
MKVAQ83:)B'6R=#I_W.@2LHS]BTTAC.XY9,,D$A%;I&'K0U*!BO7OG%#VCRX-
MYH^(6" SE>M*L!7_T:Y/3!@1L3%\"L[WB4Z6M8/(S>%.[ZZUM>^A=828F#4B
M8FU =5;2-3FN@;V$7CLT#J%RV8XE9HV(6!M74D'60[P;8<:(B)5Q45NIA+6L
M27Y6'K6,&/-%3.P+M%?0ZJ3&F#9B8FU@_0+V;A5BHL,28G><LB\@\H;D-R:F
MDIA8):<EW("&F)A58F*K')OX5Q3M^Q 0TTI,K)4N)7="8IZ)B3USRLT=[R3F
MF9C8,Z@.VXD(,TU,;)JN7-Y9Y9AP8F+AH-FR'\[A))A[$F+WH)BM*D\P]R1O
MZ9[6%$F"N2<A=@^.F8:8Z*08L7MPS"S$Q-R3$+OGQ# ?6L^X*&0X6Y)@!DJ(
M#72RP]%O=D),S$$)^5@'P6RW=,Q!";F#3F+Z6@\Q,0<EU Y"H]E*2)B%$F(+
M(;U,'\]P_ANS4$IL(11S68>8F(72-YLX\YAYB(E9*'WEV;-#PH3S>,EF(29F
MH9380AV8R[JJN'GVP]]EB(DNSKSV""C$;"\A819*B2V$1_,FQ,0LE+[&2.AX
MN'9 E2\A)F:AE-A")S /S2C$Q"R4$EL(C6;[W<0LE!);Z.3PM\]6VO%P@1.S
M4$9L(03SJ.N181;*B"T43J0?I7;_(4.(B5DH(Y^'PR836JO:F(4R8@MU8WI*
MO]8=CM,SS$(9]3<"V!( ZX>8Z$<"Q!;J7@3X[RT-,3$+9=1CH:X9I,[TGF$6
MRJC'0MV82[AT4;>F#3/,0EECH<'AXZI"K.&JQ1QN8:$\YV6^,,QO]NN^:>97
M:M9U65Y"V:VZUKPX?*MU^,[LRT]02P,$%     @ ;H@F61,G[+KO 0  I2(
M !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\W:NT[K0!2%X5>)_ !,
M]BW $:&BH46\@!4F%Y'$ECT(>'NB4(1E49P&S:JLL>7MO_IDC7WWE/=MV77'
M<;OKQ]G'87\<E\VVE/Y?2N-JFP_M>-7U^7BZLNZ&0UM.RV&3^G;UVFYRTOE\
MD8:?,YK[NY\S9\^???Z?B=UZO5OEAV[U=LC'\LO@]-X-K^,VY]+,GMMAD\NR
M21_[R^DQG0]R=9K<S!Y?ELWP^")-JAVD$*3U@PR"K'Z00Y#7#PH(BOI!"PA:
MU ^ZAJ#K^D$W$'13/^@6@F[K!\D<99P3)$VP)M!:D&LA\%H0;"$06Y!L(3!;
M$&TA4%N0;2%P6Q!N(9!;D&XAL%L0;R'06U%O)=!;46\ET%LG+]L$>BOJK01Z
M*^JM!'HKZJT$>BOJK01Z*^JM!'HKZJT$>BOJK01Z&^IM!'H;ZFT$>AOJ;01Z
MVV2SA$!O0[V-0&]#O8U ;T.]C4!O0[V-0&]#O8U ;T.]C4!O1[V=0&]'O9U
M;T>]G4!O1[V=0&^?;'83Z.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H[:BW$^@=J'<0
MZ!VH=Q#H':AW$.@=J'<0Z!VH=Q#H'9./E01Z!^H=!'H'ZAT$>@?J'7^I]U@^
M]WF\]'RO\?E_274YW9LOCS\OOT^BA(LSS@G^2KG_ E!+ P04    " !NB"99
M8B/G&-@!  !((@  $P   %M#;VYT96YT7U1Y<&5S72YX;6S-VEU/@S 4!N"_
MLG!K1M>O^1'GC7JK7O@'*IP-,J!-V\WY[RU,331*7&;B>P.!MN<]M,ESQ>7C
MBZ,PV;5-%Q99%:.[8"P4%;4FY-91ET:6UK<FID>_8LX4:[,B)F:S.2ML%ZF+
MT]C7R*XN;VAI-DV<W.[2ZU#;;I%Y:D(VN=Y/[+,6F7&NJ0L3TSC;=N67E.E;
M0IY6#G-"5;MPDB9D[-N$?N3G@+=U]UOROBYI\F!\O#-MFL5V#0OQI:&0CY?X
MID>[7-8%E;;8M&E)'IPG4X:**+9-OB]Z,IX<TP[3_LJ/SA_*C 6FF0_>NI!.
MS-/A<>]'TJ^>NE2(?*S'/_$C,94^^ONH/^V2RE]FI^U]MGX]G$=@P^WX/?Y\
MQA_U#^Q#@/0A0?I0('UHD#[F('V<@O1Q!M+'.4@??(;2"(JH'(54CF(J1T&5
MHZC*45CE**YR%%@YBJP"15:!(JM D56@R"I09!4HL@H4606*K )%5H$BJT21
M5:+(*E%DE2BR2A19)8JL$D56B2*K1)%5HLBJ4&15*+(J%%D5BJP*15:%(JM"
MD56AR*I09%4HLFH4636*K!I%5HTBJT:15:/(JE%DU2BRZO^4]<G:]5__V]#?
M\];4W7L^&WX@N7H%4$L! A0#%     @ ;H@F60=!36*!    L0   !
M         ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4    " !NB"99
M,KZ!9.\    K @  $0              @ &O    9&]C4')O<',O8V]R92YX
M;6Q02P$"% ,4    " !NB"99F5R<(Q &  "<)P  $P              @ '-
M 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    ( &Z()EEN@C9!YP4
M ,4?   8              " @0X(  !X;"]W;W)K<VAE971S+W-H965T,2YX
M;6Q02P$"% ,4    " !NB"99F2&0SJT%   '&   &               @($K
M#@  >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#%     @ ;H@F63=+
MSL5&!P  -"H  !@              ("!#A0  'AL+W=O<FMS:&5E=',O<VAE
M970S+GAM;%!+ 0(4 Q0    ( &Z()EE1LMR4% <  .8>   8
M  " @8H;  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q02P$"% ,4    " !N
MB"99.-#0>*P(  #%-0  &               @('4(@  >&PO=V]R:W-H965T
M<R]S:&5E=#4N>&UL4$L! A0#%     @ ;H@F64,QCU>R @  @ D  !@
M         ("!MBL  'AL+W=O<FMS:&5E=',O<VAE970V+GAM;%!+ 0(4 Q0
M   ( &Z()EFAN7RL<@0  "(/   8              " @9XN  !X;"]W;W)K
M<VAE971S+W-H965T-RYX;6Q02P$"% ,4    " !NB"99'!SW%R0)   &&
M&               @(%&,P  >&PO=V]R:W-H965T<R]S:&5E=#@N>&UL4$L!
M A0#%     @ ;H@F68P79<8J!P  P1$  !@              ("!H#P  'AL
M+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    ( &Z()EF=T^3SQ@0
M "$+   9              " @0!$  !X;"]W;W)K<VAE971S+W-H965T,3 N
M>&UL4$L! A0#%     @ ;H@F6<.W<0$-!P  ZQ   !D              ("!
M_4@  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"% ,4    " !NB"99
M]7 >2ND#  #X"   &0              @(%!4   >&PO=V]R:W-H965T<R]S
M:&5E=#$R+GAM;%!+ 0(4 Q0    ( &Z()EES=D++'08  /$.   9
M      " @6%4  !X;"]W;W)K<VAE971S+W-H965T,3,N>&UL4$L! A0#%
M  @ ;H@F66F58H'3!@  MA   !D              ("!M5H  'AL+W=O<FMS
M:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    " !NB"994<J'^X$#  ">!P
M&0              @(&_80  >&PO=V]R:W-H965T<R]S:&5E=#$U+GAM;%!+
M 0(4 Q0    ( &Z()EDG8$CHG00  /X*   9              " @7=E  !X
M;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#%     @ ;H@F6?(&2>D"
M!   5@D  !D              ("!2VH  'AL+W=O<FMS:&5E=',O<VAE970Q
M-RYX;6Q02P$"% ,4    " !NB"995U,;;&$)  #;%P  &0
M@(&$;@  >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+ 0(4 Q0    ( &Z(
M)EE#EXTAHP<  "X4   9              " @1QX  !X;"]W;W)K<VAE971S
M+W-H965T,3DN>&UL4$L! A0#%     @ ;H@F6>4*":**!0  #0P  !D
M         ("!]G\  'AL+W=O<FMS:&5E=',O<VAE970R,"YX;6Q02P$"% ,4
M    " !NB"994%!( !L$  ">"0  &0              @(&WA0  >&PO=V]R
M:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( &Z()EDTV67@^0,  )X)
M   9              " @0F*  !X;"]W;W)K<VAE971S+W-H965T,C(N>&UL
M4$L! A0#%     @ ;H@F69R0]?T-!   Y D  !D              ("!.8X
M 'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4    " !NB"99.9?R
M&LT#  #$"   &0              @(%]D@  >&PO=V]R:W-H965T<R]S:&5E
M=#(T+GAM;%!+ 0(4 Q0    ( &Z()EF4#&4$* 0  *X*   9
M  " @8&6  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL4$L! A0#%     @
M;H@F6>)^JWH"!   , D  !D              ("!X)H  'AL+W=O<FMS:&5E
M=',O<VAE970R-BYX;6Q02P$"% ,4    " !NB"99L0P5.0X#  #'!@  &0
M            @($9GP  >&PO=V]R:W-H965T<R]S:&5E=#(W+GAM;%!+ 0(4
M Q0    ( &Z()EDI6D2J4 ,  (X'   9              " @5ZB  !X;"]W
M;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%     @ ;H@F60 6>L\> P
M_ 8  !D              ("!Y:4  'AL+W=O<FMS:&5E=',O<VAE970R.2YX
M;6Q02P$"% ,4    " !NB"99[9EG2E0$  !R%0  &0              @($Z
MJ0  >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4 Q0    ( &Z()EE=
M63/(A ,  #L0   9              " @<6M  !X;"]W;W)K<VAE971S+W-H
M965T,S$N>&UL4$L! A0#%     @ ;H@F6:"UE1*% @  %P<  !D
M     ("!@+$  'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6Q02P$"% ,4
M" !NB"99Y\,D+_L"  "V"P  &0              @($\M   >&PO=V]R:W-H
M965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( &Z()EE!:N1KFP(  &H&   9
M              " @6ZW  !X;"]W;W)K<VAE971S+W-H965T,S0N>&UL4$L!
M A0#%     @ ;H@F62>*\5AZ @  #08  !D              ("!0+H  'AL
M+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4    " !NB"99V*;DI78"
M  !5!@  &0              @('QO   >&PO=V]R:W-H965T<R]S:&5E=#,V
M+GAM;%!+ 0(4 Q0    ( &Z()ED0 CY ,P,  .H)   9              "
M@9Z_  !X;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L! A0#%     @ ;H@F
M66V#*7:A!@  SC@  !D              ("!",,  'AL+W=O<FMS:&5E=',O
M<VAE970S."YX;6Q02P$"% ,4    " !NB"99U$&U>E@#   2"@  &0
M        @('@R0  >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;%!+ 0(4 Q0
M   ( &Z()EDGU#U6I (  -4'   9              " @6_-  !X;"]W;W)K
M<VAE971S+W-H965T-# N>&UL4$L! A0#%     @ ;H@F6=78V7!A!0  OB0
M !D              ("!2M   'AL+W=O<FMS:&5E=',O<VAE970T,2YX;6Q0
M2P$"% ,4    " !NB"99_D#DP/<"  #;"0  &0              @('BU0
M>&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0    ( &Z()EFLXL^*
M500  *P4   9              " @1#9  !X;"]W;W)K<VAE971S+W-H965T
M-#,N>&UL4$L! A0#%     @ ;H@F61<-!PTH P  < H  !D
M ("!G-T  'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q02P$"% ,4    " !N
MB"99DTH&\00#  !R"0  &0              @('[X   >&PO=V]R:W-H965T
M<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( &Z()ED,2&F 0P,  (@+   9
M          " @3;D  !X;"]W;W)K<VAE971S+W-H965T-#8N>&UL4$L! A0#
M%     @ ;H@F6=>^H0#> P  <A$  !D              ("!L.<  'AL+W=O
M<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4    " !NB"99GI3.U^<$  #D
M'P  &0              @('%ZP  >&PO=V]R:W-H965T<R]S:&5E=#0X+GAM
M;%!+ 0(4 Q0    ( &Z()EF$TO524 ,  &(+   9              " @>/P
M  !X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#%     @ ;H@F6311
MD/1R!   RAD  !D              ("!:O0  'AL+W=O<FMS:&5E=',O<VAE
M970U,"YX;6Q02P$"% ,4    " !NB"997CZY?Z "  #X!0  &0
M    @($3^0  >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;%!+ 0(4 Q0    (
M &Z()EEX@G]U^@(  *(*   9              " @>K[  !X;"]W;W)K<VAE
M971S+W-H965T-3(N>&UL4$L! A0#%     @ ;H@F6;(O%C\^!   G10  !D
M             ("!&_\  'AL+W=O<FMS:&5E=',O<VAE970U,RYX;6Q02P$"
M% ,4    " !NB"99B"V64:L"   U!P  &0              @(&0 P$ >&PO
M=V]R:W-H965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    ( &Z()EE:VB/S. ,
M '\,   9              " @7(& 0!X;"]W;W)K<VAE971S+W-H965T-34N
M>&UL4$L! A0#%     @ ;H@F61X8..C\"0   CT  !D              ("!
MX0D! 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"% ,4    " !NB"99
MY!J<?5P&   E.   &0              @($4% $ >&PO=V]R:W-H965T<R]S
M:&5E=#4W+GAM;%!+ 0(4 Q0    ( &Z()EG>HP/.(@,  '((   9
M      " @:<: 0!X;"]W;W)K<VAE971S+W-H965T-3@N>&UL4$L! A0#%
M  @ ;H@F62IUZ XY P  R!,   T              ( ! !X! 'AL+W-T>6QE
M<RYX;6Q02P$"% ,4    " !NB"99EXJ[',     3 @  "P
M@ %D(0$ 7W)E;',O+G)E;'-02P$"% ,4    " !NB"9944HO>KT$  #K)@
M#P              @ %-(@$ >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @
M;H@F61,G[+KO 0  I2(  !H              ( !-R<! 'AL+U]R96QS+W=O
M<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ ;H@F66(CYQC8 0  2"(  !,
M             ( !7BD! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     $(
,0@ %$@  9RL!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<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>70
<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>72
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.2.u1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>133</ContextCount>
  <ElementCount>262</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>45</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>100000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>100010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>100020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>100030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>100040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.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>6</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.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>7</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995455 - Disclosure - Overview and Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation</Role>
      <ShortName>Overview and Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995465 - Disclosure - Revenue and Deferred Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue</Role>
      <ShortName>Revenue and Deferred Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995475 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995485 - Disclosure - Balance Sheet Components</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents</Role>
      <ShortName>Balance Sheet Components</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995495 - Disclosure - Acquired Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1</Role>
      <ShortName>Acquired Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995505 - Disclosure - Operating Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases</Role>
      <ShortName>Operating Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995515 - Disclosure - Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity</Role>
      <ShortName>Stockholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995525 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995535 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995545 - Disclosure - Basic and Diluted Net (Loss) Income Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1</Role>
      <ShortName>Basic and Diluted Net (Loss) Income Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995555 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995565 - Disclosure - Financing Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements</Role>
      <ShortName>Financing Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995575 - Disclosure - Business Acquisition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1</Role>
      <ShortName>Business Acquisition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995595 - Disclosure - Overview and Basis of Presentation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies</Role>
      <ShortName>Overview and Basis of Presentation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995605 - Disclosure - Revenue and Deferred Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables</Role>
      <ShortName>Revenue and Deferred Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995625 - Disclosure - Balance Sheet Components (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables</Role>
      <ShortName>Balance Sheet Components (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995635 - Disclosure - Acquired Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables</Role>
      <ShortName>Acquired Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995645 - Disclosure - Operating Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables</Role>
      <ShortName>Operating Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995655 - Disclosure - Stockholders' Equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables</Role>
      <ShortName>Stockholders' Equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995665 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995675 - Disclosure - Basic and Diluted Net (Loss) Income Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables</Role>
      <ShortName>Basic and Diluted Net (Loss) Income Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995685 - Disclosure - Business Acquisition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables</Role>
      <ShortName>Business Acquisition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995695 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995705 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995715 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995725 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995735 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1</Role>
      <ShortName>Revenue and Deferred Revenue - Additional Information (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995745 - Disclosure - Fair Value Measurements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails</Role>
      <ShortName>Fair Value Measurements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995755 - Disclosure - Balance Sheet Components - Components of Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails</Role>
      <ShortName>Balance Sheet Components - Components of Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995765 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails</Role>
      <ShortName>Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995775 - Disclosure - Balance Sheet Components - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails</Role>
      <ShortName>Balance Sheet Components - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995785 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails</Role>
      <ShortName>Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995795 - Disclosure - Acquired Intangible Assets - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails</Role>
      <ShortName>Acquired Intangible Assets - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995805 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails</Role>
      <ShortName>Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995815 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails</Role>
      <ShortName>Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995825 - Disclosure - Operating Leases - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails</Role>
      <ShortName>Operating Leases - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995835 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails</Role>
      <ShortName>Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995855 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails</Role>
      <ShortName>Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>995865 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails</Role>
      <ShortName>Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>995875 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails</Role>
      <ShortName>Stockholders' Equity - Summarizes of Stock Option Activities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>995885 - Disclosure - Stockholders' Equity - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails</Role>
      <ShortName>Stockholders' Equity - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>995895 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails</Role>
      <ShortName>Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>995905 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails</Role>
      <ShortName>Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>995915 - Disclosure - Stock-Based Compensation - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails</Role>
      <ShortName>Stock-Based Compensation - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>995925 - Disclosure - Income Taxes - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>995935 - Disclosure - Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails</Role>
      <ShortName>Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>995945 - Disclosure - Basic and Diluted Net Loss Per Share - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails</Role>
      <ShortName>Basic and Diluted Net Loss Per Share - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>995955 - Disclosure - Commitments and Contingencies - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails</Role>
      <ShortName>Commitments and Contingencies - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>995965 - Disclosure - Financing Arrangements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails</Role>
      <ShortName>Financing Arrangements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>995975 - Disclosure - Business Acquisition - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails</Role>
      <ShortName>Business Acquisition - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ooma-20240731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>995985 - Disclosure - Business Acquisition - Schedule of Final Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails</Role>
      <ShortName>Business Acquisition - Schedule of Final Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="ooma-20240731.htm">ooma-20240731.htm</File>
    <File>ooma-20240731.xsd</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="1">http://fasb.org/srt/2024</BaseTaxonomy>
    <BaseTaxonomy items="520">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="11">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>74
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ooma-20240731.htm": {
   "nsprefix": "ooma",
   "nsuri": "http://www.ooma.com/20240731",
   "dts": {
    "inline": {
     "local": [
      "ooma-20240731.htm"
     ]
    },
    "schema": {
     "local": [
      "ooma-20240731.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/arcrole/esma-arcrole-2018-11-21.xsd",
      "http://www.xbrl.org/lrr/role/negated-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/2023/calculation-1.1.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/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    }
   },
   "keyStandard": 230,
   "keyCustom": 32,
   "axisStandard": 21,
   "axisCustom": 0,
   "memberStandard": 28,
   "memberCustom": 17,
   "hidden": {
    "total": 9,
    "http://xbrl.sec.gov/dei/2024": 5,
    "http://fasb.org/us-gaap/2024": 4
   },
   "contextCount": 133,
   "entityCount": 1,
   "segmentCount": 45,
   "elementCount": 564,
   "unitCount": 7,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 520,
    "http://xbrl.sec.gov/dei/2024": 30,
    "http://xbrl.sec.gov/ecd/2024": 11,
    "http://fasb.org/srt/2024": 1
   },
   "report": {
    "R1": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation",
     "longName": "100000 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited",
     "longName": "100010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
     "longName": "100020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
     "longName": "100030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited",
     "longName": "100040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_dd2082e5-119e-47db-a772-929ecc8d2f58",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6ca2a331-38b1-4579-9da0-21cd04af9939",
      "name": "us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R6": {
     "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": "6",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R7": {
     "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": "7",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "ecd:MtrlTermsOfTrdArrTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "ecd:MtrlTermsOfTrdArrTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation",
     "longName": "995455 - Disclosure - Overview and Basis of Presentation",
     "shortName": "Overview and Basis of Presentation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue",
     "longName": "995465 - Disclosure - Revenue and Deferred Revenue",
     "shortName": "Revenue and Deferred Revenue",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements",
     "longName": "995475 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents",
     "longName": "995485 - Disclosure - Balance Sheet Components",
     "shortName": "Balance Sheet Components",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1",
     "longName": "995495 - Disclosure - Acquired Intangible Assets",
     "shortName": "Acquired Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases",
     "longName": "995505 - Disclosure - Operating Leases",
     "shortName": "Operating Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity",
     "longName": "995515 - Disclosure - Stockholders' Equity",
     "shortName": "Stockholders' Equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation",
     "longName": "995525 - Disclosure - Stock-Based Compensation",
     "shortName": "Stock-Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes",
     "longName": "995535 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1",
     "longName": "995545 - Disclosure - Basic and Diluted Net (Loss) Income Per Share",
     "shortName": "Basic and Diluted Net (Loss) Income Per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies",
     "longName": "995555 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements",
     "longName": "995565 - Disclosure - Financing Arrangements",
     "shortName": "Financing Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1",
     "longName": "995575 - Disclosure - Business Acquisition",
     "shortName": "Business Acquisition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies",
     "longName": "995595 - Disclosure - Overview and Basis of Presentation (Policies)",
     "shortName": "Overview and Basis of Presentation (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables",
     "longName": "995605 - Disclosure - Revenue and Deferred Revenue (Tables)",
     "shortName": "Revenue and Deferred Revenue (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables",
     "longName": "995625 - Disclosure - Balance Sheet Components (Tables)",
     "shortName": "Balance Sheet Components (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables",
     "longName": "995635 - Disclosure - Acquired Intangible Assets (Tables)",
     "shortName": "Acquired Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables",
     "longName": "995645 - Disclosure - Operating Leases (Tables)",
     "shortName": "Operating Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables",
     "longName": "995655 - Disclosure - Stockholders' Equity (Tables)",
     "shortName": "Stockholders' Equity (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables",
     "longName": "995665 - Disclosure - Stock-Based Compensation (Tables)",
     "shortName": "Stock-Based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables",
     "longName": "995675 - Disclosure - Basic and Diluted Net (Loss) Income Per Share (Tables)",
     "shortName": "Basic and Diluted Net (Loss) Income Per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables",
     "longName": "995685 - Disclosure - Business Acquisition (Tables)",
     "shortName": "Business Acquisition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_cbe4c152-825f-4c5d-b586-12b9642ccee3",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cbe4c152-825f-4c5d-b586-12b9642ccee3",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
     "longName": "995695 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details)",
     "shortName": "Revenue and Deferred Revenue - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:NumberOfSourcesOfRevenue",
      "unitRef": "U_Source",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "ooma:NumberOfSourcesOfRevenue",
      "unitRef": "U_Source",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
     "longName": "995705 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)",
     "shortName": "Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R32": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails",
     "longName": "995715 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)",
     "shortName": "Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_1a96aa66-e0e2-4fb9-9b90-e210f298731c",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1a96aa66-e0e2-4fb9-9b90-e210f298731c",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
     "longName": "995725 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)",
     "shortName": "Revenue and Deferred Revenue - Components of Deferred Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
     "longName": "995735 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)",
     "shortName": "Revenue and Deferred Revenue - Additional Information (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_077966b7-6eee-4738-a43f-66b7ae93d1ce",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_077966b7-6eee-4738-a43f-66b7ae93d1ce",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
     "longName": "995745 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails",
     "longName": "995755 - Disclosure - Balance Sheet Components - Components of Inventories (Details)",
     "shortName": "Balance Sheet Components - Components of Inventories (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:InventoryFinishedGoodsNetOfReserves",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:InventoryFinishedGoodsNetOfReserves",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
     "longName": "995765 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)",
     "shortName": "Balance Sheet Components - Components of Other Current and Non-current Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "ooma:DeferredSalesCommissionsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "ooma:DeferredSalesCommissionsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
     "longName": "995775 - Disclosure - Balance Sheet Components - Additional Information (Details)",
     "shortName": "Balance Sheet Components - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AmortizationOfDeferredSalesCommissions",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AmortizationOfDeferredSalesCommissions",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
     "longName": "995785 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)",
     "shortName": "Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
     "longName": "995795 - Disclosure - Acquired Intangible Assets - Additional Information (Details)",
     "shortName": "Acquired Intangible Assets - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R41": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
     "longName": "995805 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)",
     "shortName": "Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails",
     "longName": "995815 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)",
     "shortName": "Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails",
     "longName": "995825 - Disclosure - Operating Leases - Additional Information (Details)",
     "shortName": "Operating Leases - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:LesseeOperatingLeaseDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:LesseeOperatingLeaseDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
     "longName": "995835 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)",
     "shortName": "Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "ooma:OperatingLeaseAsset",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails",
     "longName": "995855 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)",
     "shortName": "Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails",
     "longName": "995865 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)",
     "shortName": "Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails",
     "longName": "995875 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)",
     "shortName": "Stockholders' Equity - Summarizes of Stock Option Activities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
     "longName": "995885 - Disclosure - Stockholders' Equity - Additional Information (Details)",
     "shortName": "Stockholders' Equity - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
     "longName": "995895 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)",
     "shortName": "Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
     "longName": "995905 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)",
     "shortName": "Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6f112919-07fd-4967-b68e-a8cbf59c731f",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
     "longName": "995915 - Disclosure - Stock-Based Compensation - Additional Information (Details)",
     "shortName": "Stock-Based Compensation - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails",
     "longName": "995925 - Disclosure - Income Taxes - Additional Information (Details)",
     "shortName": "Income Taxes - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:IncomeTaxExpenseBenefit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775",
      "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
     "longName": "995935 - Disclosure - Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock (Details)",
     "shortName": "Basic and Diluted Net (Loss) Income Per Share - Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails",
     "longName": "995945 - Disclosure - Basic and Diluted Net Loss Per Share - Additional Information (Details)",
     "shortName": "Basic and Diluted Net Loss Per Share - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9ddcc391-f797-4319-bae0-ab23cff3ccff",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
     "longName": "995955 - Disclosure - Commitments and Contingencies - Additional Information (Details)",
     "shortName": "Commitments and Contingencies - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:PurchaseObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c762824-ddef-45af-8d13-01a59896f092",
      "name": "us-gaap:LossContingencyAccrualAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
     "longName": "995965 - Disclosure - Financing Arrangements - Additional Information (Details)",
     "shortName": "Financing Arrangements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "C_8c1da4ef-0cbb-42a1-8223-32033f472940",
      "name": "us-gaap:LineOfCreditFacilityInitiationDate1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "us-gaap:LineOfCreditFacilityDescription",
       "span",
       "p",
       "us-gaap:ShortTermDebtTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_8c1da4ef-0cbb-42a1-8223-32033f472940",
      "name": "us-gaap:LineOfCreditFacilityInitiationDate1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "us-gaap:LineOfCreditFacilityDescription",
       "span",
       "p",
       "us-gaap:ShortTermDebtTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
     "longName": "995975 - Disclosure - Business Acquisition - Additional Information (Details)",
     "shortName": "Business Acquisition - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "C_38a4ce87-c736-4af3-8519-f9c82b0e74e6",
      "name": "ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_bada150e-1804-484b-a975-897a4e02ba88",
      "name": "ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
     "longName": "995985 - Disclosure - Business Acquisition - Schedule of Final Purchase Price Allocation (Details)",
     "shortName": "Business Acquisition - Schedule of Final Purchase Price Allocation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "C_7c0f4b33-27e5-4787-9dc5-7576e78211db",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "div",
       "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7c0f4b33-27e5-4787-9dc5-7576e78211db",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "div",
       "ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20240731.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accounts Payable, Current, Total",
        "terseLabel": "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": [
      "r47",
      "r688"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "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": [
      "r632"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accounts Receivable, after Allowance for Credit Loss, Current, Total",
        "terseLabel": "Accounts receivable, net",
        "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": [
      "r826"
     ]
    },
    "ooma_AccruedCustomerRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "AccruedCustomerRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Customer-related liabilities",
        "label": "Accrued Customer Related Liabilities Current",
        "documentation": "Accrued customer related liabilities current."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_AccruedExpensesAndOtherCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "AccruedExpensesAndOtherCurrentLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total accrued expenses and other current liabilities",
        "terseLabel": "Accrued expenses and other current liabilities",
        "label": "Accrued Expenses And Other Current Liabilities",
        "documentation": "Accrued expenses and other current liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total",
        "terseLabel": "Accumulated other comprehensive loss",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r18",
      "r68",
      "r147",
      "r527",
      "r553",
      "r554"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "AOCL",
        "label": "AOCI Attributable to Parent [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r11",
      "r18",
      "r427",
      "r430",
      "r476",
      "r549",
      "r550",
      "r809",
      "r810",
      "r811",
      "r816",
      "r817",
      "r818",
      "r819"
     ]
    },
    "ooma_AcquisitionTransactionBonuses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "AcquisitionTransactionBonuses",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition transaction bonuses",
        "label": "Acquisition Transaction Bonuses",
        "documentation": "Acquisition transaction bonuses."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional 402(v) Disclosure [Text Block]",
        "terseLabel": "Additional 402(v) Disclosure"
       }
      }
     },
     "auth_ref": [
      "r744"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Additional Paid in Capital, Total",
        "terseLabel": "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": [
      "r60",
      "r688",
      "r923"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation Amount",
        "terseLabel": "Adjustment to Compensation, Amount"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation [Axis]",
        "terseLabel": "Adjustment to Compensation:"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]",
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]",
        "terseLabel": "Adjustment To PEO Compensation, Footnote"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased for tax withholdings on RSU vesting",
        "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/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total",
        "terseLabel": "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": [
      "r34",
      "r35",
      "r354"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net loss to net cash provided by operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r790"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Amount",
        "terseLabel": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r716",
      "r726",
      "r736",
      "r768"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]",
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined"
       }
      }
     },
     "auth_ref": [
      "r719",
      "r729",
      "r739",
      "r771"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Pension Adjustments Service Cost [Member]",
        "terseLabel": "Aggregate Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r791"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Adjustments to Compensation [Member]",
        "terseLabel": "All Adjustments to Compensation"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Executive Categories [Member]",
        "terseLabel": "All Executive Categories"
       }
      }
     },
     "auth_ref": [
      "r764"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": {
        "label": "All Individuals [Member]",
        "terseLabel": "All Individuals"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r764",
      "r772",
      "r776",
      "r784"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Trading Arrangements [Member]",
        "terseLabel": "All Trading Arrangements"
       }
      }
     },
     "auth_ref": [
      "r782"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r384",
      "r389"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": []
    },
    "us-gaap_AmortizationOfDeferredSalesCommissions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfDeferredSalesCommissions",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense for deferred sales commissions",
        "label": "Amortization of Deferred Sales Commissions",
        "documentation": "The amount of expense recognized in the current period for the periodic realization of capitalized fees that were paid to salespeople, distributors, brokers, and agents at the time of the conclusion of the sale. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r75"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Amortization expense",
        "terseLabel": "Amortization of intangible assets",
        "label": "Amortization of Intangible Assets",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r267",
      "r274",
      "r655"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Potentially dilutive shares from equity plans",
        "terseLabel": "Potentially dilutive securities excluded from the computation of diluted net loss per share",
        "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": [
      "r192"
     ]
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r421"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r113",
      "r146",
      "r164",
      "r196",
      "r198",
      "r203",
      "r204",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r422",
      "r424",
      "r451",
      "r523",
      "r587",
      "r650",
      "r651",
      "r688",
      "r707",
      "r859",
      "r860",
      "r882"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r151",
      "r164",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r422",
      "r424",
      "r451",
      "r688",
      "r859",
      "r860",
      "r882"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Short-term investments due in less than a year",
        "terseLabel": "Due in one year or less",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing 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": [
      "r217",
      "r521"
     ]
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Exercise Price",
        "terseLabel": "Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r779"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Grant Date Fair Value",
        "terseLabel": "Fair Value as of Grant Date"
       }
      }
     },
     "auth_ref": [
      "r780"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]",
        "terseLabel": "Award Timing Disclosures"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing, How MNPI Considered [Text Block]",
        "terseLabel": "Award Timing, How MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Method [Text Block]",
        "terseLabel": "Award Timing Method"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Considered [Flag]",
        "terseLabel": "Award Timing MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Disclosure [Text Block]",
        "terseLabel": "Award Timing MNPI Disclosure"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Predetermined [Flag]",
        "terseLabel": "Award Timing Predetermined"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Underlying Securities Amount",
        "terseLabel": "Underlying Securities"
       }
      }
     },
     "auth_ref": [
      "r778"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r777"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures"
       }
      }
     },
     "auth_ref": [
      "r776"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table"
       }
      }
     },
     "auth_ref": [
      "r776"
     ]
    },
    "ooma_BalanceSheetComponentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BalanceSheetComponentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Components [Abstract]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BalanceSheetComponentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BalanceSheetComponentsLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components [Line Items]",
        "label": "Balance Sheet Components [Line Items]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BalanceSheetComponentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BalanceSheetComponentsTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components [Table]",
        "label": "Balance Sheet Components [Table]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BaseRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BaseRateMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Base Rate",
        "label": "Base Rate [Member]",
        "documentation": "Minimum rate investor will accept."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Presentation",
        "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": []
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Acquiree [Domain]",
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r417",
      "r669",
      "r670"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r417",
      "r669",
      "r670"
     ]
    },
    "us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionCostOfAcquiredEntityTransactionCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Acquisition related transaction costs",
        "terseLabel": "Acquisition related costs",
        "label": "Business Acquisition, Transaction Costs",
        "documentation": "Amount of direct costs of the business combination including legal, accounting, and other costs incurred to consummate the business acquisition."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of units issued",
        "label": "Business Acquisition, Equity Interest Issued or Issuable, Number of Shares",
        "documentation": "Number of shares of equity interests issued or issuable to acquire entity."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [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": [
      "r417"
     ]
    },
    "ooma_BusinessAcquisitionsAndDivestituresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessAcquisitionsAndDivestituresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisitions And Divestitures Abstract",
        "documentation": "Business acquisitions and divestitures."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisition1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Business Acquisition",
        "label": "Business Acquisitions And Divestitures Disclosure Text Block",
        "documentation": "Business acquisitions and divestitures disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Pro forma revenue",
        "label": "Business Acquisition, Pro Forma Revenue",
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period."
       }
      }
     },
     "auth_ref": [
      "r415",
      "r416"
     ]
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition related transaction costs",
        "label": "Business Combination, Acquisition Related Costs",
        "verboseLabel": "Stock compensation expense",
        "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities."
       }
      }
     },
     "auth_ref": [
      "r36"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Final purchase price",
        "label": "Business Combination, Consideration Transferred",
        "totalLabel": "Business Combination, Consideration Transferred, Total",
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r1",
      "r10"
     ]
    },
    "ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable from the seller for working capital adjustments",
        "label": "Business Combination Consideration Transferred Working Capital Adjustment",
        "documentation": "Business combination consideration transferred working capital adjustment.",
        "verboseLabel": "Business acquisition, working capital adjustments"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable and other liabilities",
        "verboseLabel": "Accounts payable and other liabilities",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Accounts Payable And Other Liabilities",
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed, accounts payable and other liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. 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": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts receivable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable",
        "terseLabel": "Accounts payable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred revenue",
        "terseLabel": "Deferred revenue",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue",
        "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accrued liabilities",
        "terseLabel": "Accrued liabilities",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other",
        "documentation": "Amount of other liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred tax liability",
        "verboseLabel": "Deferred tax liability",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangibles",
        "verboseLabel": "Intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total",
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total purchase consideration",
        "verboseLabel": "Net assets acquired",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net",
        "documentation": "Amount recognized as of the acquisition date for the identifiable assets acquired in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r40"
     ]
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Operating lease liability",
        "verboseLabel": "Operating lease liability",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed Operating lease liability",
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed operating lease liability."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Operating lease right-of-use asset",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating lease right-of-use asset",
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed operating lease right-of-use asset"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other current and non-current assets",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Other Current And Non current Assets",
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed, other current and noncurrent assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property plant and equipment, net",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total",
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r40"
     ]
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Overview and Basis of Presentation",
        "label": "Business Description and Basis of Presentation [Text Block]",
        "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r84",
      "r85"
     ]
    },
    "ooma_CarryingValueOfConvertibleNote": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "CarryingValueOfConvertibleNote",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value of convertible note.",
        "label": "Carrying Value of Convertible Note",
        "terseLabel": "Carrying value of convertible promissory note"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAcquiredFromAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAcquiredFromAcquisition",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash acquired",
        "label": "Cash Acquired from Acquisition",
        "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business)."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total",
        "terseLabel": "Cash and cash equivalents",
        "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": [
      "r22",
      "r142",
      "r641"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents [Axis]",
        "documentation": "Information by type of cash and cash equivalent balance."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total cash and cash equivalents",
        "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": [
      "r869",
      "r870"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash and cash equivalents at beginning of period",
        "periodEndLabel": "Cash and cash equivalents at end of period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "totalLabel": "Total cash, cash equivalents and restricted cash",
        "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": [
      "r22",
      "r81",
      "r162"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net (decrease) increase in cash and cash equivalents",
        "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",
      "r81"
     ]
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changed Peer Group, Footnote [Text Block]",
        "terseLabel": "Changed Peer Group, Footnote"
       }
      }
     },
     "auth_ref": [
      "r755"
     ]
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]",
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r752"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]",
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r750"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Amount",
        "terseLabel": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Name",
        "terseLabel": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (Note 11)",
        "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": [
      "r56",
      "r104",
      "r525",
      "r574"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CommitmentsAndContingenciesDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "CommitmentsAndContingenciesDisclosureLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments And Contingencies Disclosure [Line Items]",
        "label": "Commitments And Contingencies Disclosure [Line Items]",
        "documentation": "Commitments and contingencies disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CommitmentsAndContingenciesDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "CommitmentsAndContingenciesDisclosureTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments And Contingencies Disclosure [Table]",
        "label": "Commitments And Contingencies Disclosure [Table]",
        "documentation": "Schedule of commitments and contingencies disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r285",
      "r286",
      "r633",
      "r848",
      "r853"
     ]
    },
    "us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockIncludingAdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock and APIC",
        "label": "Common Stock Including Additional Paid in Capital [Member]",
        "documentation": "Common stock held by shareholders with par value plus amounts in excess of par value or issuance value (in cases of no-par value stock)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "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": [
      "r697",
      "r698",
      "r699",
      "r701",
      "r702",
      "r703",
      "r704",
      "r816",
      "r817",
      "r819",
      "r867",
      "r922",
      "r924"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock",
        "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": [
      "r59",
      "r526",
      "r688"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Net Income [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Net Income"
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Other Measure"
       }
      }
     },
     "auth_ref": [
      "r762"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return"
       }
      }
     },
     "auth_ref": [
      "r759"
     ]
    },
    "ooma_ComprehensiveIncomeLossPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ComprehensiveIncomeLossPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Comprehensive Income Loss Policy [Text Block]",
        "documentation": "Comprehensive income loss.",
        "terseLabel": "Comprehensive Loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r26",
      "r44",
      "r45",
      "r207",
      "r632"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r26",
      "r44",
      "r45",
      "r207",
      "r556",
      "r632"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "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": [
      "r25",
      "r26",
      "r44",
      "r45",
      "r207",
      "r632",
      "r797"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "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": [
      "r632"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r25",
      "r26",
      "r44",
      "r45",
      "r207"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r25",
      "r26",
      "r27",
      "r44",
      "r100",
      "r632"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "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": [
      "r25",
      "r26",
      "r44",
      "r45",
      "r207",
      "r632"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Principles of Consolidation",
        "label": "Consolidation, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r646"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "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": [
      "r334",
      "r335",
      "r346"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Less: current deferred revenue",
        "terseLabel": "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": [
      "r334",
      "r335",
      "r346"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current deferred revenue included in other long-term liabilities",
        "label": "Contract with Customer, Liability, Noncurrent",
        "verboseLabel": "Deferred revenue, non-current",
        "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": [
      "r334",
      "r335",
      "r346"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue recognized",
        "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": [
      "r347"
     ]
    },
    "ooma_ConversionPricePerSharePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ConversionPricePerSharePercentage",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Conversion price per share percentage.",
        "label": "Conversion price per share percentage"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_ConvertibleNoteReceivableFromRelatedParty": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ConvertibleNoteReceivableFromRelatedParty",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Convertible note receivable",
        "terseLabel": "Convertible note receivable (see \"GTC\" below)",
        "label": "Convertible Note Receivable From Related Party",
        "documentation": "Convertible note receivable from related party."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_ConvertiblePromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ConvertiblePromissoryNoteMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible Promissory Note",
        "label": "Convertible Promissory Note [Member]",
        "documentation": "Convertible promissory note."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cost of Goods and Services Sold, Total",
        "terseLabel": "Total cost of 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": [
      "r71",
      "r72",
      "r514"
     ]
    },
    "us-gaap_CostOfRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfRevenueAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue:",
        "label": "Cost of Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue",
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "CreditAgreementMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Agreement",
        "label": "Credit Agreement [Member]",
        "documentation": "Credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "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": [
      "r292",
      "r857"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "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": [
      "r292",
      "r857",
      "r858"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": []
    },
    "ooma_CustomerAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "CustomerAMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer A",
        "label": "Customer A [Member]",
        "documentation": "Customer A."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "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": [
      "r86",
      "r207"
     ]
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer relationships",
        "label": "Customer Relationships [Member]",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r836",
      "r837",
      "r838",
      "r839",
      "r841",
      "r843",
      "r846",
      "r847"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r49",
      "r50",
      "r102",
      "r103",
      "r166",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r686",
      "r813",
      "r849",
      "r850",
      "r851",
      "r878",
      "r879"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, 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_DebtInstrumentInterestRateIncreaseDecrease": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateIncreaseDecrease",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument interest rate increases on borrowings",
        "label": "Debt Instrument, Interest Rate, Increase (Decrease)",
        "documentation": "Incremental percentage increase (decrease) in the stated rate on a debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, rate",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r303"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name",
        "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": [
      "r15",
      "r166",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r686",
      "r813",
      "r849",
      "r850",
      "r851",
      "r878",
      "r879"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale [Table]",
        "documentation": "Disclosure of information about investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220"
     ]
    },
    "us-gaap_DeferredFinanceCostsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredFinanceCostsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt issuance costs",
        "label": "Debt Issuance Costs, Net",
        "totalLabel": "Debt Issuance Costs, Net, Total",
        "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs."
       }
      }
     },
     "auth_ref": [
      "r862",
      "r877",
      "r878",
      "r879"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred income tax benefit",
        "terseLabel": "Deferred tax liabilities assumed",
        "totalLabel": "Deferred Income Tax Expense (Benefit), Total",
        "label": "Deferred Income Tax Expense (Benefit)",
        "negatedLabel": "Deferred tax liabilities assumed",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r121",
      "r815"
     ]
    },
    "us-gaap_DeferredRevenueArrangementByTypeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueArrangementByTypeTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Revenue Arrangement By Type [Table]",
        "label": "Deferred Revenue Arrangement, by Type [Table]",
        "documentation": "Disclosure of information about deferred revenue by type of arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueArrangementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueArrangementLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Revenue Arrangement [Line Items]",
        "label": "Deferred Revenue Arrangement [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_DeferredRevenueByArrangementDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueByArrangementDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Deferred Revenue",
        "label": "Deferred Revenue, by Arrangement, Disclosure [Table Text Block]",
        "documentation": "Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_DeferredSalesCommissionsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "DeferredSalesCommissionsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred sales commissions, current",
        "label": "Deferred Sales Commissions Current",
        "documentation": "Deferred sales commissions current."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_DeferredSalesCommissionsNonCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "DeferredSalesCommissionsNonCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred sales commissions, non-current",
        "label": "Deferred Sales Commissions Non Current",
        "documentation": "Deferred sales commissions non current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DepreciationAmortizationAndAccretionNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DepreciationAmortizationAndAccretionNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Depreciation, Amortization and Accretion, Net, Total",
        "terseLabel": "Depreciation and amortization of capital expenditures",
        "label": "Depreciation, Amortization and Accretion, Net",
        "documentation": "The aggregate net amount of depreciation, amortization, and accretion recognized during an accounting period. As a noncash item, the net amount is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Developed technology",
        "label": "Developed Technology Rights [Member]",
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r836",
      "r837",
      "r838",
      "r839",
      "r841",
      "r843",
      "r846",
      "r847"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails"
     ],
     "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": [
      "r345",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails"
     ],
     "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": [
      "r345",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Revenue Disaggregated by Revenue Source",
        "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": [
      "r864"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensation"
     ],
     "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": [
      "r352",
      "r357",
      "r385",
      "r386",
      "r388",
      "r672"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Quarterly Report",
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r711"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r743"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": []
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]",
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year"
       }
      }
     },
     "auth_ref": [
      "r754"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net (loss) income per share of common stock, Basic",
        "verboseLabel": "Basic net (loss) income per share",
        "totalLabel": "Earnings Per Share, Basic, Total",
        "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": [
      "r159",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r182",
      "r184",
      "r189",
      "r190",
      "r191",
      "r195",
      "r413",
      "r420",
      "r435",
      "r436",
      "r519",
      "r536",
      "r647"
     ]
    },
    "ooma_EarningsPerShareBasicDilutedAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "EarningsPerShareBasicDilutedAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net (loss) income per share of common stock:",
        "verboseLabel": "Net income (loss) per share of common stock:",
        "label": "Earnings Per Share Basic Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "EarningsPerShareBasicDilutedOtherDisclosuresAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Denominator",
        "label": "Earnings Per Share Basic Diluted Other Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net (loss) income per share of common stock, Diluted",
        "verboseLabel": "Diluted net (loss) income per share",
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "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": [
      "r159",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r184",
      "r189",
      "r190",
      "r191",
      "r195",
      "r413",
      "r420",
      "r435",
      "r436",
      "r519",
      "r536",
      "r647"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShare1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic and Diluted Net (Loss) Income Per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r181",
      "r192",
      "r193",
      "r194"
     ]
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Employee-related Liabilities, Current, Total",
        "terseLabel": "Payroll and related expenses",
        "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": [
      "r50"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total",
        "terseLabel": "Unrecognized compensation expense related to unvested share-based awards",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r387"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation expenses recognized over weighted average vesting 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": [
      "r387"
     ]
    },
    "us-gaap_EmployeeStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock Purchase Rights under ESPP",
        "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/2024",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Option [Member]",
        "terseLabel": "Employee Stock Option",
        "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/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line Two",
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Securities Act 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/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r793"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r709"
     ]
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Footnote [Text Block]",
        "terseLabel": "Equity Awards Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]",
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r789"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments [Member]",
        "terseLabel": "Equity Awards Adjustments"
       }
      }
     },
     "auth_ref": [
      "r789"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r789"
     ]
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component",
        "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": [
      "r12",
      "r138",
      "r156",
      "r157",
      "r158",
      "r167",
      "r168",
      "r169",
      "r171",
      "r176",
      "r178",
      "r180",
      "r197",
      "r240",
      "r241",
      "r281",
      "r333",
      "r403",
      "r404",
      "r410",
      "r411",
      "r412",
      "r414",
      "r419",
      "r420",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r434",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r461",
      "r476",
      "r534",
      "r549",
      "r550",
      "r551",
      "r561",
      "r613"
     ]
    },
    "ooma_EquityFinancingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "EquityFinancingMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity financing.",
        "label": "Equity Financing [Member]",
        "terseLabel": "Equity Financing"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]",
        "terseLabel": "Equity Valuation Assumption Difference, Footnote"
       }
      }
     },
     "auth_ref": [
      "r758"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneous Compensation Analysis [Text Block]",
        "terseLabel": "Erroneous Compensation Analysis"
       }
      }
     },
     "auth_ref": [
      "r716",
      "r726",
      "r736",
      "r768"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneously Awarded Compensation Recovery [Table]",
        "terseLabel": "Erroneously Awarded Compensation Recovery"
       }
      }
     },
     "auth_ref": [
      "r713",
      "r723",
      "r733",
      "r765"
     ]
    },
    "us-gaap_EurodollarMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EurodollarMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Eurodollar Rate",
        "label": "Eurodollar [Member]",
        "documentation": "Interest rate based on U.S. dollar denominated deposits at foreign banks or foreign branches of U.S. banks."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Category [Axis]",
        "terseLabel": "Executive Category:"
       }
      }
     },
     "auth_ref": [
      "r764"
     ]
    },
    "ooma_FacilitiesConsolidationCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "FacilitiesConsolidationCharges",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Facilities consolidation gain",
        "documentation": "Facilities consolidation charges.",
        "label": "Facilities Consolidation Charges",
        "terseLabel": "Facilities consolidation charges"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_FacilitiesConsolidationGainCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "FacilitiesConsolidationGainCharges",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Facilities consolidation gain",
        "label": "Facilities consolidation gain (charges)",
        "documentation": "Facilities consolidation gain (charges)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r439",
      "r441",
      "r442",
      "r443",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r517",
      "r675",
      "r680"
     ]
    },
    "us-gaap_FairValueNetAssetLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueNetAssetLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value, Net Asset (Liability), Total",
        "terseLabel": "Fair value level asset and liability",
        "label": "Fair Value, Net Asset (Liability)",
        "documentation": "Fair value of asset after deduction of liability."
       }
      }
     },
     "auth_ref": [
      "r869",
      "r870"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instrument",
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r318",
      "r331",
      "r432",
      "r450",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r535",
      "r653",
      "r675",
      "r677",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r689",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r827",
      "r828",
      "r829",
      "r830",
      "r868",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated useful life",
        "verboseLabel": "Estimated life (in years)",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accumulated Amortization, Intangible Assets",
        "verboseLabel": "Accumulated Amortization, Intangible Assets",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r144",
      "r252",
      "r273",
      "r655"
     ]
    },
    "ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite Lived Intangible Assets Amortization Expense After Year Four",
        "documentation": "Finite lived intangible assets amortization expense after year four."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "verboseLabel": "2026",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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": [
      "r275",
      "r637",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "verboseLabel": "2025 remainder",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r925"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "verboseLabel": "2029",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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": [
      "r275",
      "r637",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "verboseLabel": "2028",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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": [
      "r275",
      "r637",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "verboseLabel": "2027",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized 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": [
      "r275",
      "r637",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r266",
      "r268",
      "r269",
      "r270",
      "r272",
      "r273",
      "r276",
      "r277",
      "r515",
      "r516",
      "r637"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Gross Value, Intangible Assets",
        "label": "Finite-Lived Intangible Assets, Gross",
        "totalLabel": "Finite-Lived Intangible Assets, Gross, Total",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r252",
      "r273",
      "r516",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite Lived Intangible Assets [Line Items]",
        "label": "Finite-Lived Intangible 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": [
      "r266",
      "r273",
      "r276",
      "r277",
      "r279",
      "r515",
      "r637",
      "r655"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r266",
      "r268",
      "r269",
      "r270",
      "r272",
      "r273",
      "r276",
      "r277",
      "r637"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Carrying Value, Intangible Assets",
        "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance",
        "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance",
        "terseLabel": "Total intangible assets",
        "label": "Finite-Lived Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r515",
      "r843"
     ]
    },
    "ooma_FiscalYearEndPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "FiscalYearEndPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fiscal Year",
        "label": "Fiscal Year End Policy [Text Block]",
        "documentation": "Fiscal year end."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r772"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Expense of Enforcement, Amount",
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r772"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r772"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]",
        "terseLabel": "Forgone Recovery, Explanation of Impracticability"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r772"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r772"
     ]
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]",
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year"
       }
      }
     },
     "auth_ref": [
      "r753"
     ]
    },
    "ooma_GainFromNoteConversion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "GainFromNoteConversion",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gain from note conversion",
        "label": "Gain From Note Conversion",
        "negatedLabel": "Gain from note conversion"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_GainOnNoteConversion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "GainOnNoteConversion",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gain on note conversion.",
        "label": "Gain On Note Conversion",
        "negatedLabel": "Gain on note conversion"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "General and Administrative Expense, Total",
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense",
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r597"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense [Member]",
        "verboseLabel": "General and Administrative Expense",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "ooma_GlobalTelecomCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "GlobalTelecomCorporationMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Global Telecom Corporation",
        "label": "Global Telecom Corporation [Member]",
        "documentation": "Global Telecom Corporation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Goodwill, Ending Balance",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "totalLabel": "Goodwill, Total",
        "terseLabel": "Goodwill",
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r143",
      "r253",
      "r518",
      "r651",
      "r654",
      "r676",
      "r688",
      "r833",
      "r834"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillGross",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill",
        "label": "Goodwill, Gross",
        "documentation": "Amount, before accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r255",
      "r262",
      "r654"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [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": [
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r654"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GrossProfit",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r73",
      "r112",
      "r164",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r451",
      "r649",
      "r650",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r859"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "(Loss) income 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": [
      "r70",
      "r108",
      "r112",
      "r520",
      "r532",
      "r649",
      "r650",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r282",
      "r283",
      "r284",
      "r438",
      "r440",
      "r444",
      "r546",
      "r548",
      "r598",
      "r637",
      "r678",
      "r893"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r283",
      "r284",
      "r438",
      "r440",
      "r444",
      "r546",
      "r548",
      "r598",
      "r637",
      "r678",
      "r893"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r392",
      "r395",
      "r396",
      "r397",
      "r398",
      "r401",
      "r402",
      "r405",
      "r407",
      "r408",
      "r409",
      "r560",
      "r674"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax provision",
        "totalLabel": "Income Tax Expense (Benefit), Total",
        "label": "Income Tax Expense (Benefit)",
        "negatedLabel": "Income tax provision",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r114",
      "r122",
      "r179",
      "r180",
      "r196",
      "r201",
      "r204",
      "r394",
      "r395",
      "r406",
      "r537",
      "r674"
     ]
    },
    "ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable, accrued expenses and other liabilities",
        "label": "Increase Decrease In Accounts Payable Accrued Expenses And Other Liabilities",
        "documentation": "Increase (decrease) in accounts payable accrued expenses and other liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable, net",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in Deferred Revenue",
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r638"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Increase (Decrease) in Inventories, Total",
        "negatedLabel": "Inventories and deferred inventory costs",
        "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": [
      "r7"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in operating assets and liabilities:",
        "label": "Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "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": [
      "r7"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Potentially dilutive shares from equity plans",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r186",
      "r187",
      "r191",
      "r356"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "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": {
        "label": "Individual [Axis]",
        "terseLabel": "Individual:"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r764",
      "r772",
      "r776",
      "r784"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]",
        "terseLabel": "Insider Trading Arrangements:"
       }
      }
     },
     "auth_ref": [
      "r782"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]",
        "terseLabel": "Insider Trading Policies and Procedures:"
       }
      }
     },
     "auth_ref": [
      "r712",
      "r788"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Adopted [Flag]",
        "terseLabel": "Insider Trading Policies and Procedures Adopted"
       }
      }
     },
     "auth_ref": [
      "r712",
      "r788"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]",
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted"
       }
      }
     },
     "auth_ref": [
      "r712",
      "r788"
     ]
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssets1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Intangible Assets",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r278",
      "r280",
      "r636",
      "r637"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Intangible Assets, Net (Excluding Goodwill), Total",
        "terseLabel": "Intangible assets, net",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r266",
      "r843",
      "r845"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwillAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net (Excluding Goodwill) [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_InterestAndOtherIncomeExpenseNonoperatingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "InterestAndOtherIncomeExpenseNonoperatingNet",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and other (expense) income, net",
        "label": "Interest And Other Income Expense Nonoperating Net",
        "documentation": "The net amount of nonoperating interest and other income (expense)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r644"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total inventory",
        "terseLabel": "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": [
      "r148",
      "r642",
      "r688"
     ]
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryRawMaterialsNetOfReserves",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r645"
     ]
    },
    "ooma_InvestmentInPrivatelyHeldCompany": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "InvestmentInPrivatelyHeldCompany",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in privately-held company",
        "label": "Investment In Privately Held Company",
        "documentation": "Investment in privately-held company."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentOwnedBalancePrincipalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentOwnedBalancePrincipalAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment Owned, Balance, Principal Amount",
        "terseLabel": "Investment in the common and preferred shares of GTC",
        "documentation": "Amount of principal of investment owned."
       }
      }
     },
     "auth_ref": [
      "r563",
      "r564",
      "r620",
      "r624",
      "r626",
      "r699"
     ]
    },
    "ooma_JamesAGustkeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "JamesAGustkeMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "James A. Gustke",
        "label": "James A. Gustke [Member]",
        "documentation": "James A. Gustke."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_JunctionNetworksIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "JunctionNetworksIncMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Junction Networks, Inc.",
        "label": "Junction Networks, Inc. [Member]",
        "documentation": "Junction Networks, Inc. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_KeyBankCreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "KeyBankCreditAgreementMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Key Bank Credit Agreement",
        "label": "Key Bank Credit Agreement [Member]",
        "documentation": "Key bank credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Lease, Cost, Total",
        "verboseLabel": "Lease costs",
        "label": "Lease, Cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r468",
      "r687"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [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": [
      "r466",
      "r475"
     ]
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessee's leases."
       }
      }
     },
     "auth_ref": [
      "r466",
      "r475"
     ]
    },
    "us-gaap_LesseeOperatingLeaseDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseDescription",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, description",
        "label": "Lessee, Operating Lease, Description",
        "documentation": "Description of lessee's operating lease."
       }
      }
     },
     "auth_ref": [
      "r467"
     ]
    },
    "ooma_LesseeOperatingLeaseExpirationDateEndingPeriod": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "LesseeOperatingLeaseExpirationDateEndingPeriod",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lessee operating lease expiration date ending period.",
        "label": "Lessee Operating Lease Expiration Date Ending Period",
        "terseLabel": "Operating lease, expiration date ending period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Maturities of Operating Lease Liabilities",
        "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": [
      "r880"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total future 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": [
      "r473"
     ]
    },
    "ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee Operating Lease Liability Payments Due After Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after 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": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "terseLabel": "2026",
        "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": [
      "r473"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2029",
        "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": [
      "r473"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2028",
        "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": [
      "r473"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2027",
        "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": [
      "r473"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "terseLabel": "2025 remainder",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r880"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "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": [
      "r473"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r460"
     ]
    },
    "us-gaap_LetterOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LetterOfCreditMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Letters 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/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r49",
      "r50",
      "r51",
      "r54",
      "r55",
      "r56",
      "r57",
      "r164",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r423",
      "r424",
      "r425",
      "r451",
      "r573",
      "r648",
      "r707",
      "r859",
      "r882",
      "r883"
     ]
    },
    "us-gaap_LiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities",
        "label": "Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "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": [
      "r64",
      "r105",
      "r529",
      "r688",
      "r814",
      "r831",
      "r876"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities and Stockholders\u2019 Equity",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "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": [
      "r51",
      "r141",
      "r164",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r423",
      "r424",
      "r425",
      "r451",
      "r688",
      "r859",
      "r882",
      "r883"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityAverageOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityAverageOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing capacity, Outstanding amount",
        "label": "Line of Credit Facility, Average Outstanding Amount",
        "documentation": "Average amount borrowed under the credit facility during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCommitmentFeePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityCommitmentFeePercentage",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of commitment fees on revolving credit facility",
        "label": "Line of Credit Facility, Commitment Fee Percentage",
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r48",
      "r53"
     ]
    },
    "us-gaap_LineOfCreditFacilityDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityDescription",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing capacity description",
        "label": "Line of Credit Facility, Description",
        "documentation": "Description of the terms of a credit facility arrangement. Terms typically include interest rate, collateral required, guarantees required, repayment requirements, and restrictions on use of assets and activities of the entity."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53",
      "r292"
     ]
    },
    "us-gaap_LineOfCreditFacilityInitiationDate1": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityInitiationDate1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement initiation date",
        "label": "Line of Credit Facility, Initiation Date",
        "documentation": "Date the credit facility first became available, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53"
     ]
    },
    "us-gaap_LineOfCreditFacilityInterestRateDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityInterestRateDescription",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, Interest rate description",
        "label": "Line of Credit Facility, Interest Rate Description",
        "documentation": "Description of interest rate for borrowing under credit facility. Includes, but is not limited to, terms and method for determining interest rate."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53"
     ]
    },
    "us-gaap_LineOfCreditFacilityLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Line Items]",
        "label": "Line of Credit Facility [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": [
      "r292",
      "r813",
      "r857"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum borrowing capacity",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53"
     ]
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing remaining capacity",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53",
      "r292"
     ]
    },
    "us-gaap_LineOfCreditFacilityTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Table]",
        "label": "Line of Credit Facility [Table]",
        "documentation": "Disclosure of information about short-term and long-term contractual arrangements with lender under which borrowing can occur up to maximum amount. Includes, but is not limited to, letter of credit, standby letter of credit, and revolving credit arrangement."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r53",
      "r292",
      "r813",
      "r857"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt, net of current portion",
        "label": "Long-Term Debt",
        "totalLabel": "Long-Term Debt, Total",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r103",
      "r309",
      "r319",
      "r657",
      "r658",
      "r686",
      "r891"
     ]
    },
    "us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Category of Item Purchased",
        "label": "Category of Item Purchased [Axis]",
        "documentation": "Information by category of items purchased under a long-term purchase commitment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Purchase Commitment, Category of Item Purchased",
        "label": "Long-Term Purchase Commitment, Category of Item Purchased [Domain]",
        "documentation": "General description of the goods or services to be purchased from the counterparty to the long-term purchase commitment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingencyAccrualAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyAccrualAtCarryingValue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Loss Contingency Accrual, Beginning Balance",
        "periodEndLabel": "Loss Contingency Accrual, Ending Balance",
        "label": "Loss Contingency Accrual",
        "terseLabel": "Accrued liabilities for loss contingencies",
        "documentation": "Amount of loss contingency liability."
       }
      }
     },
     "auth_ref": [
      "r287",
      "r794"
     ]
    },
    "us-gaap_LossContingencyLossInPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyLossInPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cumulative charges of litigation loss",
        "label": "Loss Contingency, Loss in Period",
        "documentation": "The amount of loss pertaining to the specified contingency that was charged against earnings in the period, including the effects of revisions in previously reported estimates."
       }
      }
     },
     "auth_ref": [
      "r854"
     ]
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Axis]",
        "documentation": "Information by name or description of a single external customer or a group of external customers."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r664",
      "r691",
      "r694",
      "r864",
      "r892",
      "r894",
      "r895",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum",
        "label": "Maximum [Member]",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r136",
      "r137",
      "r288",
      "r289",
      "r290",
      "r291",
      "r351",
      "r390",
      "r437",
      "r513",
      "r545",
      "r547",
      "r555",
      "r565",
      "r566",
      "r619",
      "r621",
      "r622",
      "r623",
      "r625",
      "r634",
      "r635",
      "r652",
      "r661",
      "r671",
      "r679",
      "r680",
      "r684",
      "r685",
      "r692",
      "r861",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889"
     ]
    },
    "ooma_MaximumOpenMarketRepurchasesOfEquityInterests": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "MaximumOpenMarketRepurchasesOfEquityInterests",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum open market repurchases of equity interests",
        "label": "Maximum Open Market Repurchases of Equity Interests",
        "documentation": "Maximum open market repurchases of equity interests."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure [Axis]",
        "terseLabel": "Measure:"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r136",
      "r137",
      "r288",
      "r289",
      "r290",
      "r291",
      "r351",
      "r390",
      "r437",
      "r513",
      "r545",
      "r547",
      "r555",
      "r565",
      "r566",
      "r619",
      "r621",
      "r622",
      "r623",
      "r625",
      "r634",
      "r635",
      "r652",
      "r661",
      "r671",
      "r679",
      "r680",
      "r684",
      "r692",
      "r861",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]",
        "terseLabel": "MNPI Disclosure Timed for Compensation Value"
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "us-gaap_MoneyMarketFundsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MoneyMarketFundsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "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": [
      "r865"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Terms of Trading Arrangement [Text Block]",
        "terseLabel": "Material Terms of Trading Arrangement"
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Domain]",
        "documentation": "Single external customer or group of external customers."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r664",
      "r691",
      "r694",
      "r864",
      "r892",
      "r894",
      "r895",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Named Executive Officers, Footnote [Text Block]",
        "terseLabel": "Named Executive Officers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash (used in) provided by 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": [
      "r161"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from 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/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "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": [
      "r161"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from 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/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by 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": [
      "r81",
      "r82",
      "r83"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from 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/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "totalLabel": "Net (loss) income",
        "negatedLabel": "Net income (loss)",
        "verboseLabel": "Net loss",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r83",
      "r109",
      "r139",
      "r152",
      "r154",
      "r158",
      "r164",
      "r170",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r179",
      "r180",
      "r188",
      "r239",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r413",
      "r420",
      "r436",
      "r451",
      "r533",
      "r595",
      "r611",
      "r612",
      "r705",
      "r859"
     ]
    },
    "us-gaap_NetIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLossAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Numerator",
        "label": "Net Income (Loss) Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recent Accounting Pronouncements Not Yet Adopted",
        "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": []
    },
    "ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NonCancelableServiceAgreementWithCloudServiceProviderMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Non cancelable service agreement with cloud service provider.",
        "label": "Non Cancelable Service Agreement With Cloud Service Provider [Member]",
        "terseLabel": "Non Cancelable Service Agreement With Cloud Service Provider"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NonCancelableServiceAgreementWithTelecommunicationsProviderMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Cancelable Service Agreement with Telecommunications Provider",
        "label": "Non Cancelable Service Agreement With Telecommunications Provider [Member]",
        "documentation": "Non-cancelable service agreement with telecommunications provider member."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-GAAP Measure Description [Text Block]",
        "terseLabel": "Non-GAAP Measure Description"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "ooma_NonMarketableEquityInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NonMarketableEquityInvestments",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Non-marketable equity investments.",
        "label": "Non-marketable Equity Investments",
        "terseLabel": "Non-marketable equity investments",
        "verboseLabel": "Fair value of GTC preferred stock"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-NEOs [Member]",
        "terseLabel": "Non-NEOs"
       }
      }
     },
     "auth_ref": [
      "r720",
      "r730",
      "r740",
      "r764",
      "r772"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r747"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Total Compensation Amount",
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r746"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO [Member]",
        "terseLabel": "Non-PEO NEO"
       }
      }
     },
     "auth_ref": [
      "r764"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of countries outside United States represented 10% or more of total revenue",
        "label": "Number Of Countries Outside That Exceeded Ten Percentage Of Revenue",
        "documentation": "Number of countries outside that exceeded ten percentage of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NumberOfCustomersThatIndividuallyExceeded10OfRevenue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of customers that individually exceeded 10% of revenue",
        "label": "Number Of Customers That Individually Exceeded10 Of Revenue",
        "documentation": "Number of customers that individually exceeded 10% of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NumberOfSourcesOfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "NumberOfSourcesOfRevenue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of sources of revenue",
        "label": "Number Of Sources Of Revenue",
        "documentation": "Number of sources of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OnsipMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "OnsipMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "OnSIP.",
        "label": "OnSIP [Member]",
        "terseLabel": "OnSIP"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OomaBusinessMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "OomaBusinessMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ooma Business",
        "label": "Ooma Business [Member]",
        "documentation": "Ooma Business."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OomaResidentialMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "OomaResidentialMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ooma Residential",
        "label": "Ooma Residential [Member]",
        "documentation": "Ooma Residential."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total operating expenses",
        "label": "Operating Expenses",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating expenses:",
        "label": "Operating Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "(Loss) income from operations",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r649",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825"
     ]
    },
    "ooma_OperatingLeaseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "OperatingLeaseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total leased assets",
        "label": "Operating Lease Asset",
        "documentation": "Operating lease asset."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Present value of lease liabilities",
        "totalLabel": "Total lease liabilities",
        "label": "Operating Lease, Liability",
        "terseLabel": "Lease liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r463"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Short-term operating lease liabilities",
        "terseLabel": "Short-term operating lease liabilities",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r463"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes current operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r464"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Long-term operating lease liabilities",
        "terseLabel": "Long-term operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r463"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash payments for 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": [
      "r465",
      "r469"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r462"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of operating lease 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": [
      "r812"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r472",
      "r687"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r471",
      "r687"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other",
        "label": "Other Accrued Liabilities, Current",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_OtherAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other current assets",
        "label": "Other Assets, Current",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r688"
     ]
    },
    "us-gaap_OtherAssetsMiscellaneousNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsMiscellaneousNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other assets",
        "terseLabel": "Other non-current assets",
        "label": "Other Assets, Miscellaneous, Noncurrent",
        "documentation": "Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other non-current assets",
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r145"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in other comprehensive loss",
        "totalLabel": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r11",
      "r99",
      "r153",
      "r155",
      "r176"
     ]
    },
    "us-gaap_OtherOperatingActivitiesCashFlowStatement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherOperatingActivitiesCashFlowStatement",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "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/2024",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Performance Measure, Amount",
        "terseLabel": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Aggregate Erroneous Compensation Amount",
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r718",
      "r728",
      "r738",
      "r770"
     ]
    },
    "ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "OutstandingPrincipalAndUnpaidInterestsConvertedToShares",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Outstanding principal and unpaid interests converted to shares.",
        "label": "Outstanding Principal and Unpaid Interests Converted To Shares",
        "terseLabel": "Outstanding principal and unpaid interests converted to shares"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery Compensation Amount",
        "terseLabel": "Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r721",
      "r731",
      "r741",
      "r773"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r721",
      "r731",
      "r741",
      "r773"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r745"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentForContingentConsiderationLiabilityInvestingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Contingent Consideration Liability, Investing Activities",
        "terseLabel": "Contingency related payments",
        "documentation": "Amount of cash outflow, made soon after acquisition date of business combination, to settle contingent consideration liability."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment of cash consideration subject to working capital adjustments",
        "label": "Payment of Cash Consideration Subject to Working Capital Adjustments",
        "documentation": "Payment of cash consideration subject to working capital adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payments for repurchases of common stock",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r79"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased for tax withholdings on vesting of restricted stock units (\"RSU\")",
        "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": [
      "r160"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash consideration paid",
        "verboseLabel": "Base purchase price",
        "negatedLabel": "Business acquisition",
        "label": "Payments to Acquire Businesses, Gross",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r418"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Business acquisition, net of cash acquired",
        "verboseLabel": "Total cash consideration",
        "terseLabel": "Final aggregate fair value consideration transferred in cash",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "totalLabel": "Payments to Acquire Businesses, Net of Cash Acquired, Total",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "negatedLabel": "Capital expenditures",
        "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": [
      "r78"
     ]
    },
    "ooma_PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "PaymentsToRelatedPartyForInventoryPurchasesAndRelatedCosts",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment for inventory purchases and related costs",
        "label": "Payments to Related Party for Inventory Purchases and Related Costs",
        "documentation": "Payments to related party for inventory purchases and related costs."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Issuers, Footnote [Text Block]",
        "terseLabel": "Peer Group Issuers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r755"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Total Shareholder Return Amount",
        "terseLabel": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r755"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Actually Paid Compensation Amount",
        "terseLabel": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r747"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO [Member]",
        "terseLabel": "PEO"
       }
      }
     },
     "auth_ref": [
      "r764"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Name",
        "terseLabel": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Total Compensation Amount",
        "terseLabel": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r746"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Prior Service Cost [Member]",
        "terseLabel": "Pension Adjustments Prior Service Cost"
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Service Cost [Member]",
        "terseLabel": "Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r792"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Benefits Adjustments, Footnote [Text Block]",
        "terseLabel": "Pension Benefits Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r747"
     ]
    },
    "us-gaap_PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock [Member]",
        "terseLabel": "Preferred Stock",
        "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company."
       }
      }
     },
     "auth_ref": [
      "r697",
      "r698",
      "r701",
      "r702",
      "r703",
      "r704",
      "r922",
      "r924"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other current assets",
        "terseLabel": "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": [
      "r808"
     ]
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Prepaid Expense, Current, Total",
        "terseLabel": "Prepaid expenses and other",
        "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": [
      "r149",
      "r250",
      "r251",
      "r643"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of common stock",
        "label": "Proceeds from Issuance of Common Stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Maturities, Prepayments and Calls of Short-Term Investments",
        "terseLabel": "Proceeds from maturities of short-term investments",
        "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r77"
     ]
    },
    "ooma_ProductAndOtherRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ProductAndOtherRevenueMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Product and other revenue",
        "terseLabel": "Product and other",
        "label": "Product And Other Revenue [Member]",
        "documentation": "Product and other revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductConcentrationRiskMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Concentration Risk",
        "label": "Product Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues during the period from a specified product are to a specified benchmark, such as total net revenues, segment revenues or product line revenues. May also reflect the percentage contribution the product made to operating results. Risk is materially adverse effects of a loss of sales of a significant product or line of products, which could occur upon loss of rights to sell, distribute or license others; loss of patent or copyright protection; or technological obsolescence."
       }
      }
     },
     "auth_ref": [
      "r87"
     ]
    },
    "us-gaap_ProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Other",
        "label": "Product [Member]",
        "documentation": "Article or substance produced by nature, labor or machinery."
       }
      }
     },
     "auth_ref": [
      "r662"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service",
        "label": "Product and Service [Axis]",
        "documentation": "Information by product and service, or group of similar products and similar services."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r130",
      "r131",
      "r132",
      "r133",
      "r134",
      "r135",
      "r205",
      "r514",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r639",
      "r662",
      "r690",
      "r692",
      "r693",
      "r695",
      "r696",
      "r805",
      "r855",
      "r856",
      "r864",
      "r892",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service",
        "label": "Product and Service [Domain]",
        "documentation": "Product or service, or a group of similar products or similar services."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r130",
      "r131",
      "r132",
      "r133",
      "r134",
      "r135",
      "r205",
      "r514",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r639",
      "r662",
      "r690",
      "r692",
      "r693",
      "r695",
      "r696",
      "r805",
      "r855",
      "r856",
      "r864",
      "r892",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Property, Plant and Equipment, Net, Total",
        "terseLabel": "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": [
      "r9",
      "r474",
      "r522",
      "r531",
      "r688"
     ]
    },
    "us-gaap_PurchaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PurchaseObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Purchase Obligation, Total",
        "terseLabel": "Non-cancelable inventory purchase commitments",
        "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": []
    },
    "us-gaap_PurchaseObligationDueInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PurchaseObligationDueInNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchase Obligation, to be Paid, Year One",
        "terseLabel": "Non-cancelable purchase commitments between March 2024 and February 2025",
        "documentation": "Amount of purchase arrangement to be paid in next fiscal year following current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PurchaseObligationDueInSecondYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PurchaseObligationDueInSecondYear",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchase Obligation, to be Paid, Year Two",
        "terseLabel": "Non-cancelable purchase commitments between March 2024 and February 2025",
        "documentation": "Amount of purchase arrangement to be paid in second fiscal year following current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Table]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r745"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance [Table Text Block]",
        "terseLabel": "Pay vs Performance Disclosure, Table"
       }
      }
     },
     "auth_ref": [
      "r745"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r136",
      "r137",
      "r288",
      "r289",
      "r290",
      "r291",
      "r349",
      "r351",
      "r380",
      "r381",
      "r382",
      "r390",
      "r437",
      "r488",
      "r497",
      "r513",
      "r545",
      "r547",
      "r555",
      "r565",
      "r566",
      "r619",
      "r621",
      "r622",
      "r623",
      "r625",
      "r634",
      "r635",
      "r652",
      "r661",
      "r671",
      "r679",
      "r680",
      "r684",
      "r685",
      "r692",
      "r699",
      "r852",
      "r861",
      "r872",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r125",
      "r126",
      "r127",
      "r128",
      "r136",
      "r137",
      "r288",
      "r289",
      "r290",
      "r291",
      "r349",
      "r351",
      "r380",
      "r381",
      "r382",
      "r390",
      "r437",
      "r488",
      "r497",
      "r513",
      "r545",
      "r547",
      "r555",
      "r565",
      "r566",
      "r619",
      "r621",
      "r622",
      "r623",
      "r625",
      "r634",
      "r635",
      "r652",
      "r661",
      "r671",
      "r679",
      "r680",
      "r684",
      "r685",
      "r692",
      "r699",
      "r852",
      "r861",
      "r872",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889"
     ]
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]",
        "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure"
       }
      }
     },
     "auth_ref": [
      "r713",
      "r723",
      "r733",
      "r765"
     ]
    },
    "ooma_RegulatoryTaxAccruals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "RegulatoryTaxAccruals",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Regulatory fees and taxes",
        "label": "Regulatory Tax Accruals",
        "documentation": "Regulatory tax accruals."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related and Nonrelated Parties [Domain]",
        "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r350",
      "r477",
      "r478",
      "r524",
      "r530",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r592",
      "r594",
      "r618"
     ]
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related and Nonrelated Parties [Axis]",
        "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r350",
      "r477",
      "r478",
      "r524",
      "r530",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r592",
      "r594",
      "r618",
      "r881"
     ]
    },
    "ooma_RemainingOperatingLeaseLiabilityWroteOff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "RemainingOperatingLeaseLiabilityWroteOff",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Remaining operating lease liability wrote off.",
        "label": "Remaining Operating Lease Liability Wrote Off",
        "terseLabel": "Write off of lease liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RepaymentsOfLongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Repayments of Long-Term Debt, Total",
        "label": "Repayments of Long-Term Debt",
        "negatedLabel": "Repayments of long-term debt",
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r558"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Research and Development Expense, Total",
        "terseLabel": "Research and development",
        "label": "Research and Development Expense",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r391",
      "r637",
      "r650",
      "r890"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "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": []
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date [Axis]",
        "terseLabel": "Restatement Determination Date:"
       }
      }
     },
     "auth_ref": [
      "r714",
      "r724",
      "r734",
      "r766"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date",
        "terseLabel": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r715",
      "r725",
      "r735",
      "r767"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Does Not Require Recovery [Text Block]",
        "terseLabel": "Restatement does not require Recovery"
       }
      }
     },
     "auth_ref": [
      "r722",
      "r732",
      "r742",
      "r774"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "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": [
      "r142"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units",
        "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": [
      "r23"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units (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_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "terseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r93",
      "r528",
      "r552",
      "r554",
      "r559",
      "r576",
      "r688"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r138",
      "r167",
      "r168",
      "r169",
      "r171",
      "r176",
      "r178",
      "r180",
      "r240",
      "r241",
      "r281",
      "r403",
      "r404",
      "r410",
      "r411",
      "r412",
      "r414",
      "r419",
      "r420",
      "r426",
      "r428",
      "r429",
      "r431",
      "r434",
      "r459",
      "r461",
      "r549",
      "r551",
      "r561",
      "r924"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total revenue",
        "label": "Revenue from Contract with Customer, Including Assessed Tax",
        "verboseLabel": "Revenues",
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r111",
      "r196",
      "r199",
      "r200",
      "r202",
      "r204",
      "r205",
      "r206",
      "r207",
      "r344",
      "r345",
      "r514"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue and Deferred Revenue",
        "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": [
      "r123",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r348"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations, 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": [
      "r120"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date",
        "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": [
      "r120"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations, percentage",
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r795"
     ]
    },
    "us-gaap_RevenuesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuesAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue:",
        "label": "Revenues [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "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/2024",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets recognized in exchange for new operating lease obligations",
        "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": [
      "r470",
      "r687"
     ]
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SaleOfStockNameOfTransactionDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock",
        "label": "Sale of Stock [Domain]",
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue",
        "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": [
      "r207",
      "r796"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Accrued Expenses and Other Current Liabilities",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Available For Sale Securities [Line Items]",
        "label": "Debt Securities, Available-for-Sale [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": [
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r417"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computation of Basic and Diluted Net Loss And Net Income Per Share of Common Stock",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r820"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations",
        "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": [
      "r33"
     ]
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Financial Assets at Fair Value",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, 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": [
      "r869",
      "r870"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Finite Lived Intangible Assets [Table]",
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r266",
      "r273",
      "r276",
      "r277",
      "r279",
      "r515",
      "r637",
      "r655"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "verboseLabel": "Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r655",
      "r842"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r654"
     ]
    },
    "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Acquired Intangible Assets Net",
        "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": [
      "r832",
      "r835"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Inventories",
        "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": [
      "r16",
      "r65",
      "r66",
      "r67"
     ]
    },
    "us-gaap_ScheduleOfOtherAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfOtherAssetsTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Other Current and Non-current Assets",
        "label": "Schedule of Other Assets [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amounts of other assets. This disclosure includes other current assets and other noncurrent assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Final Purchase Price Allocation",
        "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]",
        "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree."
       }
      }
     },
     "auth_ref": [
      "r96"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "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": [
      "r353",
      "r355",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summarizes of Restricted Stock Units Activities",
        "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": [
      "r94"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summarizes of Stock Option Activities",
        "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": [
      "r13",
      "r14",
      "r94"
     ]
    },
    "ooma_ScheduleOfStockholdersEquityNoteDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ScheduleOfStockholdersEquityNoteDisclosureTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Stockholders Equity Note Disclosure [Table]",
        "label": "Schedule Of Stockholders Equity Note Disclosure [Table]",
        "documentation": "Schedule of stockholders equity note disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Estimated Future Amortization Expense",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r655",
      "r844"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration of Net Accounts Receivable Balance",
        "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": [
      "r24",
      "r25",
      "r26",
      "r27",
      "r44",
      "r100"
     ]
    },
    "us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SOFR",
        "label": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap that has its variable-rate leg referenced to Secured Overnight Financing Rate (SOFR) with no additional spread over SOFR on variable-rate leg."
       }
      }
     },
     "auth_ref": [
      "r866"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r708"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "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": [
      "r710"
     ]
    },
    "us-gaap_SellingAndMarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingAndMarketingExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Selling and Marketing Expense, Total",
        "terseLabel": "Sales and marketing",
        "label": "Selling and Marketing Expense",
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingAndMarketingExpenseMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales and marketing",
        "label": "Selling and Marketing Expense [Member]",
        "documentation": "Primary financial statement caption encompassing selling and marketing expense."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Payment Arrangement, Noncash Expense, Total",
        "terseLabel": "Stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period",
        "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": [
      "r672"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Canceled",
        "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": [
      "r374"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Canceled",
        "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": [
      "r374"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares, Granted",
        "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": [
      "r372"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Granted",
        "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": [
      "r372"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Shares, RSUs Beginning Balance",
        "periodEndLabel": "Shares, RSUs Ending Balance",
        "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": [
      "r369",
      "r370"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "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/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted Average Grant-Date Fair Value Per Share, Beginning Balance",
        "periodEndLabel": "Weighted Average Grant-Date Fair Value Per Share, Ending Balance",
        "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": [
      "r369",
      "r370"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Vested",
        "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": [
      "r373"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated fair value of awards",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value",
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash."
       }
      }
     },
     "auth_ref": [
      "r376"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Vested",
        "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": [
      "r373"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "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": [
      "r353",
      "r355",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value of vested 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": [
      "r376"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Canceled",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period",
        "terseLabel": "Shares, Canceled",
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r367"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock options granted",
        "terseLabel": "Shares, Granted",
        "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": [
      "r365"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average grant date fair value of options granted",
        "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": [
      "r375"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value",
        "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": [
      "r31"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Shares, Beginning balance",
        "periodEndLabel": "Shares, Ending balance",
        "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": [
      "r361",
      "r362"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "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/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted Average Exercise Price Per Share, Beginning balance",
        "periodEndLabel": "Weighted Average Exercise Price Per Share, Ending balance",
        "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": [
      "r361",
      "r362"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "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": []
    },
    "ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Contractual Term [Abstract]",
        "documentation": "Share based compensation arrangement by share based payment award options outstanding weighted average remaining contractual term."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest exercisable or convertible options. 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": [
      "r378"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "documentation": "Number of fully vested and expected to vest exercisable options that may 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": [
      "r378"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, 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 exercisable or convertible options. 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": [
      "r378"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted purchase price of shares of common stock under ESPP",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Per Share Weighted Average Price of Shares Purchased",
        "documentation": "Per share weighted-average price paid for shares purchased on open market for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Award Types",
        "terseLabel": "All Award Types",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share, Exercised",
        "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": [
      "r366"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price",
        "terseLabel": "Weighted Average Exercise Price Per Share, Canceled",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r367"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term",
        "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": [
      "r95"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest exercisable or convertible options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the 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": [
      "r378"
     ]
    },
    "us-gaap_ShortTermDebtTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermDebtTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Arrangements",
        "label": "Short-Term Debt [Text Block]",
        "documentation": "The entire disclosure for short-term debt."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_ShortTermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermDebtTypeAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Debt, Type",
        "label": "Short-Term Debt, Type [Axis]",
        "documentation": "Information by type of short-term debt arrangement."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r849",
      "r850",
      "r851"
     ]
    },
    "us-gaap_ShortTermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermDebtTypeDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Debt, Type",
        "label": "Short-Term Debt, Type [Domain]",
        "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing."
       }
      }
     },
     "auth_ref": [
      "r47",
      "r849",
      "r850",
      "r851"
     ]
    },
    "us-gaap_ShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermInvestments",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Short-Term Investments, Total",
        "terseLabel": "Short-term investments",
        "label": "Short-Term Investments",
        "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r107",
      "r807"
     ]
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermInvestmentsMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments",
        "label": "Short-Term Investments [Member]",
        "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r627",
      "r628",
      "r629",
      "r640"
     ]
    },
    "ooma_SignificantAccountingPoliciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "SignificantAccountingPoliciesPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Significant Accounting Policies",
        "label": "Significant Accounting Policies Policy [Text Block]",
        "documentation": "Disclosure of significant accounting policies."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r59",
      "r62",
      "r63",
      "r138",
      "r156",
      "r157",
      "r158",
      "r167",
      "r168",
      "r169",
      "r171",
      "r176",
      "r178",
      "r180",
      "r197",
      "r240",
      "r241",
      "r281",
      "r333",
      "r403",
      "r404",
      "r410",
      "r411",
      "r412",
      "r414",
      "r419",
      "r420",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r434",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r461",
      "r476",
      "r534",
      "r549",
      "r550",
      "r551",
      "r561",
      "r613"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "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": [
      "r167",
      "r168",
      "r169",
      "r197",
      "r461",
      "r514",
      "r557",
      "r562",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r575",
      "r578",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r594",
      "r596",
      "r597",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r613",
      "r700"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r168",
      "r169",
      "r197",
      "r208",
      "r461",
      "r514",
      "r557",
      "r562",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r575",
      "r578",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r594",
      "r596",
      "r597",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r613",
      "r700"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Price or TSR Estimation Method [Text Block]",
        "terseLabel": "Stock Price or TSR Estimation Method"
       }
      }
     },
     "auth_ref": [
      "r717",
      "r727",
      "r737",
      "r769"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "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_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Number of shares of common stock issued under ESPP",
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r58",
      "r59",
      "r93"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Exercised",
        "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": [
      "r12",
      "r58",
      "r59",
      "r93",
      "r366"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture, Total",
        "terseLabel": "Issuance of common stock under equity-based plans",
        "label": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture",
        "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r58",
      "r59",
      "r93"
     ]
    },
    "srt_StockRepurchaseProgramAuthorizedAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock repurchase program authorized amount",
        "label": "Share Repurchase Program, Authorized, Amount",
        "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": [
      "r863"
     ]
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock repurchase program, remaining authorized repurchase amount",
        "label": "Share Repurchase Program, Remaining Authorized, Amount",
        "documentation": "Amount remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchases of common stock, shares",
        "label": "Stock Repurchased During Period, Shares",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r58",
      "r59",
      "r93",
      "r558",
      "r613",
      "r630"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchases of common stock",
        "negatedLabel": "Repurchases of common stock",
        "label": "Stock Repurchased During Period, Value",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r58",
      "r59",
      "r93",
      "r561",
      "r613",
      "r630",
      "r706"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders\u2019 equity",
        "periodStartLabel": "BALANCE",
        "periodEndLabel": "BALANCE",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r62",
      "r63",
      "r88",
      "r577",
      "r593",
      "r614",
      "r615",
      "r688",
      "r707",
      "r814",
      "r831",
      "r876",
      "r924"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_StockholdersEquityNoteDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "StockholdersEquityNoteDisclosureLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders Equity Note Disclosure [Line Items]",
        "label": "Stockholders Equity Note Disclosure [Line Items]",
        "documentation": "Stockholders equity note disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders' Equity",
        "label": "Equity [Text Block]",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r163",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r333",
      "r433",
      "r616",
      "r617",
      "r631"
     ]
    },
    "ooma_SubscriptionAndServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "SubscriptionAndServicesMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subscription and Services",
        "label": "Subscription And Services [Member]",
        "documentation": "Subscription and services."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SubscriptionAndServicesRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "SubscriptionAndServicesRevenueMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subscription and services revenue",
        "terseLabel": "Subscription and services",
        "label": "Subscription And Services Revenue [Member]",
        "documentation": "Subscription and services revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r458",
      "r480"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r458",
      "r480"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Table]",
        "documentation": "Disclosure of information about significant event or transaction occurring between statement of financial position date and date when financial statements were issued."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r480"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r458",
      "r480"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r458",
      "r480"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEvent"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subsequent Event",
        "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": [
      "r479",
      "r481"
     ]
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsidiarySaleOfStockAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock",
        "label": "Sale of Stock [Axis]",
        "documentation": "Information by type of sale of the entity's stock."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Supplemental Balance Sheet Information Related to Leases",
        "label": "Summary Of Supplemental Balance Sheet Information Related To Leases Table [Text Block]",
        "documentation": "Tabular disclosure of supplemental balance sheet information related to leases."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Supplemental Cash Flow Information Related to Leases",
        "label": "Summary Of Supplemental Cash Flow Information Related To Leases Table [Text Block]",
        "documentation": "Tabular disclosure of supplemental cash flow information related to leases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components",
        "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": [
      "r806"
     ]
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tabular List [Table Text Block]",
        "terseLabel": "Tabular List, Table"
       }
      }
     },
     "auth_ref": [
      "r763"
     ]
    },
    "ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Termination penalties in connection with termination of credit agreement",
        "label": "Termination Penalties in Connection with Termination of Credit Agreement",
        "documentation": "Termination penalties in connection with termination of credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Amount",
        "terseLabel": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r755"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Vs Peer Group [Text Block]",
        "terseLabel": "Total Shareholder Return Vs Peer Group"
       }
      }
     },
     "auth_ref": [
      "r762"
     ]
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trade names",
        "label": "Trade Names [Member]",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841",
      "r843",
      "r845",
      "r846",
      "r847"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement [Axis]",
        "terseLabel": "Trading Arrangement:"
       }
      }
     },
     "auth_ref": [
      "r782"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangements, by Individual [Table]",
        "terseLabel": "Trading Arrangements, by Individual"
       }
      }
     },
     "auth_ref": [
      "r784"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments",
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r318",
      "r331",
      "r432",
      "r450",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r535",
      "r675",
      "r677",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r689",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r827",
      "r828",
      "r829",
      "r830",
      "r868",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875"
     ]
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Adoption Date",
        "terseLabel": "Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r785"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Duration",
        "terseLabel": "Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r786"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Expiration Date",
        "terseLabel": "Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r786"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r784"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Title",
        "terseLabel": "Title"
       }
      }
     },
     "auth_ref": [
      "r784"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Securities Aggregate Available Amount",
        "terseLabel": "Aggregate Available"
       }
      }
     },
     "auth_ref": [
      "r787"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Termination Date",
        "terseLabel": "Termination Date"
       }
      }
     },
     "auth_ref": [
      "r785"
     ]
    },
    "ooma_TwoThousandSixHundredHzIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20240731",
     "localname": "TwoThousandSixHundredHzIncMember",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionScheduleOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2600Hz, Inc",
        "label": "Two Thousand Six Hundred Hz, Inc [Member]",
        "documentation": "2,600Hz, Inc."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfArrangementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TypeOfArrangementAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r421"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Underlying Security Market Price Change, Percent",
        "terseLabel": "Underlying Security Market Price Change"
       }
      }
     },
     "auth_ref": [
      "r781"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Unrecognized Tax Benefits, Ending Balance",
        "periodStartLabel": "Unrecognized Tax Benefits, Beginning Balance",
        "terseLabel": "Unrecognized tax benefits",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r393",
      "r400",
      "r673"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense, Total",
        "terseLabel": "Interest expense or penalties related to unrecognized tax benefits",
        "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": [
      "r399",
      "r673"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r28",
      "r29",
      "r30",
      "r115",
      "r116",
      "r117",
      "r118"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate",
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate",
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]",
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r751"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Diluted weighted-average common shares",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Diluted, Total",
        "terseLabel": "Weighted-average shares of common stock outstanding, Diluted",
        "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": [
      "r183",
      "r191"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average shares of common stock outstanding:",
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.ooma.com/20240731/taxonomy/role/DisclosureBasicAndDilutedNetLossIncomePerShareComputationOfBasicAndDilutedNetLossAndNetIncomePerShareOfCommonStockDetails",
      "http://www.ooma.com/20240731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic weighted average common shares",
        "verboseLabel": "Weighted average common shares",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "terseLabel": "Weighted-average shares of common stock 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": [
      "r182",
      "r191"
     ]
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]",
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r749"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "7",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-7"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "8",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-8"
  },
  "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/2147477401/830-230-45-1"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r5": {
   "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"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "r9": {
   "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"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r12": {
   "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"
  },
  "r13": {
   "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"
  },
  "r14": {
   "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"
  },
  "r15": {
   "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"
  },
  "r16": {
   "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"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "r24": {
   "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"
  },
  "r25": {
   "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"
  },
  "r26": {
   "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"
  },
  "r27": {
   "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"
  },
  "r28": {
   "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"
  },
  "r29": {
   "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"
  },
  "r30": {
   "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"
  },
  "r31": {
   "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"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r33": {
   "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"
  },
  "r34": {
   "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"
  },
  "r35": {
   "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"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "25",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-23"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "37",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-37"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r44": {
   "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"
  },
  "r45": {
   "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"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/205/tableOfContent"
  },
  "r47": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r48": {
   "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)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r49": {
   "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"
  },
  "r50": {
   "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"
  },
  "r51": {
   "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(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r52": {
   "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(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r53": {
   "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(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r54": {
   "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(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r55": {
   "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(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r56": {
   "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"
  },
  "r57": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "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"
  },
  "r64": {
   "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"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r72": {
   "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)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r73": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r88": {
   "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"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r93": {
   "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"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r95": {
   "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"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r100": {
   "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"
  },
  "r101": {
   "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/2147478546/942-210-S99-1"
  },
  "r102": {
   "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/2147478546/942-210-S99-1"
  },
  "r103": {
   "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/2147478546/942-210-S99-1"
  },
  "r104": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r105": {
   "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/2147478546/942-210-S99-1"
  },
  "r106": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r107": {
   "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(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r108": {
   "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/2147478524/942-220-S99-1"
  },
  "r109": {
   "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/2147478524/942-220-S99-1"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "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"
  },
  "r117": {
   "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"
  },
  "r118": {
   "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"
  },
  "r119": {
   "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"
  },
  "r120": {
   "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"
  },
  "r121": {
   "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"
  },
  "r122": {
   "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"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(a)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(b)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r128": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column A",
   "Publisher": "SEC"
  },
  "r130": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 11",
   "Section": "L",
   "Publisher": "SEC"
  },
  "r136": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r137": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 4",
   "Publisher": "SEC"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r154": {
   "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"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "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"
  },
  "r165": {
   "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"
  },
  "r166": {
   "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"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r177": {
   "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"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A"
  },
  "r188": {
   "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"
  },
  "r189": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "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"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "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"
  },
  "r203": {
   "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"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r211": {
   "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"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r244": {
   "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"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-16"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "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"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1"
  },
  "r253": {
   "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"
  },
  "r254": {
   "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"
  },
  "r255": {
   "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"
  },
  "r256": {
   "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"
  },
  "r257": {
   "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"
  },
  "r258": {
   "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"
  },
  "r259": {
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "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"
  },
  "r262": {
   "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"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r264": {
   "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"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-4"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r282": {
   "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"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "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"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "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"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r293": {
   "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"
  },
  "r294": {
   "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"
  },
  "r295": {
   "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"
  },
  "r296": {
   "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"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "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"
  },
  "r351": {
   "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"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r391": {
   "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"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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/2147477891/740-270-50-1"
  },
  "r409": {
   "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"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "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"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6B"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/842-20/tableOfContent"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r462": {
   "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"
  },
  "r463": {
   "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"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2"
  },
  "r465": {
   "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"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "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"
  },
  "r472": {
   "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"
  },
  "r473": {
   "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"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r476": {
   "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"
  },
  "r477": {
   "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"
  },
  "r478": {
   "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"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481444/860-30-45-1"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r513": {
   "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"
  },
  "r514": {
   "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"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r518": {
   "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/2147478546/942-210-S99-1"
  },
  "r519": {
   "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/2147478524/942-220-S99-1"
  },
  "r520": {
   "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/2147477314/942-235-S99-1"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-3A"
  },
  "r522": {
   "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/2147478451/942-360-50-1"
  },
  "r523": {
   "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/2147478777/944-210-S99-1"
  },
  "r524": {
   "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)(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r525": {
   "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/2147478777/944-210-S99-1"
  },
  "r526": {
   "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/2147478777/944-210-S99-1"
  },
  "r527": {
   "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)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r528": {
   "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/2147478777/944-210-S99-1"
  },
  "r529": {
   "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/2147478777/944-210-S99-1"
  },
  "r530": {
   "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)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r531": {
   "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/2147478777/944-210-S99-1"
  },
  "r532": {
   "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/2147477250/944-220-S99-1"
  },
  "r533": {
   "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/2147477250/944-220-S99-1"
  },
  "r534": {
   "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(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r535": {
   "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(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r536": {
   "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/2147477250/944-220-S99-1"
  },
  "r537": {
   "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/2147477250/944-220-S99-1"
  },
  "r538": {
   "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/2147477965/944-235-S99-2"
  },
  "r539": {
   "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/2147477965/944-235-S99-2"
  },
  "r540": {
   "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/2147477965/944-235-S99-2"
  },
  "r541": {
   "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/2147477965/944-235-S99-2"
  },
  "r542": {
   "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/2147477965/944-235-S99-2"
  },
  "r543": {
   "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/2147477965/944-235-S99-2"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r547": {
   "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"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r549": {
   "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"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r554": {
   "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"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r556": {
   "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/2147477351/944-825-50-1B"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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/2147478009/946-205-45-4"
  },
  "r562": {
   "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/2147477796/946-210-45-4"
  },
  "r563": {
   "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/2147478795/946-210-50-1"
  },
  "r564": {
   "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/2147478795/946-210-50-6"
  },
  "r565": {
   "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/2147478795/946-210-50-6"
  },
  "r566": {
   "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/2147478795/946-210-50-6"
  },
  "r567": {
   "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/2147479170/946-210-S99-1"
  },
  "r568": {
   "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/2147479170/946-210-S99-1"
  },
  "r569": {
   "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/2147479170/946-210-S99-1"
  },
  "r570": {
   "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/2147479170/946-210-S99-1"
  },
  "r571": {
   "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/2147479170/946-210-S99-1"
  },
  "r572": {
   "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/2147479170/946-210-S99-1"
  },
  "r573": {
   "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/2147479170/946-210-S99-1"
  },
  "r574": {
   "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/2147479170/946-210-S99-1"
  },
  "r575": {
   "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/2147479170/946-210-S99-1"
  },
  "r576": {
   "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/2147479170/946-210-S99-1"
  },
  "r577": {
   "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/2147479170/946-210-S99-1"
  },
  "r578": {
   "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/2147479170/946-210-S99-1"
  },
  "r579": {
   "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/2147479170/946-210-S99-1"
  },
  "r580": {
   "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/2147479170/946-210-S99-1"
  },
  "r581": {
   "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/2147479170/946-210-S99-1"
  },
  "r582": {
   "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/2147479170/946-210-S99-1"
  },
  "r583": {
   "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/2147479170/946-210-S99-1"
  },
  "r584": {
   "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/2147479170/946-210-S99-1"
  },
  "r585": {
   "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/2147479170/946-210-S99-1"
  },
  "r586": {
   "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/2147479170/946-210-S99-1"
  },
  "r587": {
   "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/2147479170/946-210-S99-1"
  },
  "r588": {
   "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/2147479170/946-210-S99-1"
  },
  "r589": {
   "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/2147479170/946-210-S99-1"
  },
  "r590": {
   "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/2147479170/946-210-S99-1"
  },
  "r591": {
   "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/2147479170/946-210-S99-1"
  },
  "r592": {
   "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/2147479170/946-210-S99-2"
  },
  "r593": {
   "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/2147479170/946-210-S99-2"
  },
  "r594": {
   "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/2147479105/946-220-45-3"
  },
  "r595": {
   "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/2147479105/946-220-45-7"
  },
  "r596": {
   "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/2147479134/946-220-S99-1"
  },
  "r597": {
   "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/2147479134/946-220-S99-1"
  },
  "r598": {
   "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/2147479134/946-220-S99-1"
  },
  "r599": {
   "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/2147479134/946-220-S99-1"
  },
  "r600": {
   "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/2147479134/946-220-S99-1"
  },
  "r601": {
   "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/2147479134/946-220-S99-1"
  },
  "r602": {
   "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/2147479134/946-220-S99-1"
  },
  "r603": {
   "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/2147479134/946-220-S99-1"
  },
  "r604": {
   "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/2147479134/946-220-S99-1"
  },
  "r605": {
   "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/2147479134/946-220-S99-1"
  },
  "r606": {
   "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/2147479134/946-220-S99-1"
  },
  "r607": {
   "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/2147479134/946-220-S99-1"
  },
  "r608": {
   "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/2147479134/946-220-S99-1"
  },
  "r609": {
   "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/2147479134/946-220-S99-1"
  },
  "r610": {
   "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/2147479134/946-220-S99-1"
  },
  "r611": {
   "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/2147479134/946-220-S99-1"
  },
  "r612": {
   "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/2147479134/946-220-S99-3"
  },
  "r613": {
   "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/2147479134/946-220-S99-3"
  },
  "r614": {
   "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/2147479134/946-220-S99-3"
  },
  "r615": {
   "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/2147479134/946-220-S99-3"
  },
  "r616": {
   "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/2147477968/946-235-50-2"
  },
  "r617": {
   "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/2147477968/946-235-50-2"
  },
  "r618": {
   "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/2147477802/946-310-45-1"
  },
  "r619": {
   "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/2147477271/946-320-S99-1"
  },
  "r620": {
   "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/2147477271/946-320-S99-1"
  },
  "r621": {
   "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/2147477271/946-320-S99-2"
  },
  "r622": {
   "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/2147477271/946-320-S99-3"
  },
  "r623": {
   "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/2147477271/946-320-S99-3"
  },
  "r624": {
   "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/2147477271/946-320-S99-3"
  },
  "r625": {
   "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/2147477271/946-320-S99-6"
  },
  "r626": {
   "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/2147477271/946-320-S99-6"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r630": {
   "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/2147478448/946-505-50-2"
  },
  "r631": {
   "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/2147478448/946-505-50-6"
  },
  "r632": {
   "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/2147478785/954-310-50-2"
  },
  "r633": {
   "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/2147478522/954-440-50-1"
  },
  "r634": {
   "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/2147477332/976-310-50-1"
  },
  "r635": {
   "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/2147479230/978-310-50-1"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/985-20/tableOfContent"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r639": {
   "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"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "SubTopic": "320",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r641": {
   "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"
  },
  "r642": {
   "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"
  },
  "r643": {
   "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"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r652": {
   "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"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479081/326-30-55-8"
  },
  "r654": {
   "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"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r656": {
   "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"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "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"
  },
  "r660": {
   "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"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6"
  },
  "r671": {
   "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"
  },
  "r672": {
   "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"
  },
  "r673": {
   "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"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r687": {
   "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"
  },
  "r688": {
   "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"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481395/860-30-55-4"
  },
  "r690": {
   "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"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r692": {
   "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"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r697": {
   "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/2147478795/946-210-50-1"
  },
  "r698": {
   "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/2147478795/946-210-50-6"
  },
  "r699": {
   "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/2147477439/946-210-55-1"
  },
  "r700": {
   "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/2147477802/946-310-45-1"
  },
  "r701": {
   "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/2147477271/946-320-S99-1"
  },
  "r702": {
   "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/2147477271/946-320-S99-2"
  },
  "r703": {
   "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/2147477271/946-320-S99-3"
  },
  "r704": {
   "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/2147477271/946-320-S99-6"
  },
  "r705": {
   "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/2147479168/946-830-55-10"
  },
  "r706": {
   "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/2147479168/946-830-55-11"
  },
  "r707": {
   "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/2147479168/946-830-55-12"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r743": {
   "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"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r767": {
   "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"
  },
  "r768": {
   "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"
  },
  "r769": {
   "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"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r777": {
   "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"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "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"
  },
  "r781": {
   "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"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10"
  },
  "r795": {
   "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"
  },
  "r796": {
   "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"
  },
  "r797": {
   "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/2147477351/944-825-50-1B"
  },
  "r798": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r799": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r800": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r801": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r802": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r803": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r804": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r805": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r806": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/210/tableOfContent"
  },
  "r807": {
   "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(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r808": {
   "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"
  },
  "r809": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r810": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r811": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "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"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r820": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r821": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r822": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r823": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r824": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r825": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r826": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r827": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r828": {
   "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"
  },
  "r829": {
   "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"
  },
  "r830": {
   "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"
  },
  "r831": {
   "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"
  },
  "r832": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r833": {
   "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"
  },
  "r834": {
   "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"
  },
  "r835": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r836": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r837": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r838": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r839": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r840": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r841": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r842": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r843": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r844": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r845": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r846": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r847": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r848": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r849": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r850": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r851": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r852": {
   "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"
  },
  "r853": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r854": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r855": {
   "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"
  },
  "r856": {
   "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"
  },
  "r857": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r858": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r859": {
   "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"
  },
  "r860": {
   "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"
  },
  "r861": {
   "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"
  },
  "r862": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r863": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r864": {
   "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"
  },
  "r865": {
   "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"
  },
  "r866": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480682/815-20-25-6A"
  },
  "r867": {
   "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"
  },
  "r868": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r869": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r870": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r871": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r872": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r873": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r874": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r875": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r876": {
   "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"
  },
  "r877": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A"
  },
  "r878": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r879": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r880": {
   "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"
  },
  "r881": {
   "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"
  },
  "r882": {
   "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"
  },
  "r883": {
   "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"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "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"
  },
  "r890": {
   "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/2147479532/912-730-25-1"
  },
  "r891": {
   "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/2147478777/944-210-S99-1"
  },
  "r892": {
   "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"
  },
  "r893": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r894": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r895": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r897": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r901": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r902": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r903": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r904": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r905": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r906": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r907": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r908": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r909": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r910": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r911": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r912": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r913": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r914": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r915": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r916": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r917": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r918": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r919": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r920": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r921": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r922": {
   "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/2147478009/946-205-45-4"
  },
  "r923": {
   "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/2147479170/946-210-S99-1"
  },
  "r924": {
   "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/2147479134/946-220-S99-3"
  },
  "r925": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>75
<FILENAME>0000950170-24-104426-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000950170-24-104426-xbrl.zip
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
M2=/ .CO+7X$3;Q.._R @"6^0XO?18%J_W?_]09(T&X*VAAD0UDD0+D>$^:R
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
MV?>7\>A#64_];38)!ZY.A?@/IJ5Y/Q\_1U%_&$^.]_)K5*S%'?$,3K\9HQ>
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
MET@OD5XBO41ZB?2!D4WDT2\O3X9Y4(['9AKI!OD;,64KF%"@#,L@3,I@A61
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
M^Z!#R!Z,<@F$D@QLCAQ<SLSYC&_A%]9>[D( SWCP[<*Q,%M"]R&\S57R1R^
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
M!VW,EM(]L>F)30\UZXZ?RRB)XQ12T@@U2EIP.CC0PLA$I;=:7PB746$BLT8
ME^4,&ND3..8H:*.#SDIJ8CNTGJ:W!+]9'=?U9$5U)NZSY.H.3;GNR5P-^EC8
MID3L'[T 5H'!63 K,@6IF46Z9R48*5,YMI=1H6).]L(:IHTQ!&XI9&TU"$XM
M>)<(.,]XR)D'_-$=#%9BB[*VCF=Y)##PN/?*/#8,D%PG:KD"&9)!'I8X(/=B
MD(SAAF43F+Y0TCHS2W,Y,M71)J\I,S 1&5D)AR>E(V=9=0<#I-GB-RQRW6-
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
MI'Y C2?<!R8%,H(QQ GAR#$5$,<A<6QE%+23 P!;=FF8H0,F8*8/N#2 ,[W
M&2T,"Q1'I&TDV3VA*4= GJ-@&--><,Y8)]7PVW9IJ!K0.P9+/'\] 23%RI5?
M03^>_8,M$%(_L)TP;B73V0'$/GN.(>4@5#I9FN0D34WR=O40;8=IL85MKT \
M),9Z##;@10+2K)$8DY$+RV,Y4\DSTN#L$9I LM%*G)PVDI43@!M+C&T*:<3
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
MV$R:_.:Y5?OD1VTVZUUB@RH-QU^;*DW&9VT?RN9:PALF6!W22@%U 75! "
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
M5+NYP1L1/UA/?MB+?XMFG%XDBUK%F&> ;,J2>FF'7^WWYM>?_GJA0A?OG"O
MXN3$34__*0]Y2WF.F\UQY>L>#DM+D6YRB4]3XI5C"NM TOOW?SL:5&_?';^X
M!C+;6'?K(US@X)]7<?#/9GHV;?X<IS]+QF[Z_389,2O"XV5$'B6CXSLM?!MW
M\/[=J]?O3EZ_JH[?OSMY__O;5T>?\B\GG_)__O;ZW:>3ZOV;_-O[X__[?][_
M_NKUQY.V(8KZM7K][W^\_?2/9WBR6T/#G_\8V5G(%PR#RIZ-9R6O6X^JZ>EX
MUMA1:'ZYMOC6N5C>U]7.)'8V'2\]K')O!>SRTLK;42;+\2R37OTMYD?=W@7!
M^ 7^R_(#>8%#>][$ETT\MY.LOTL9M6[W_-H_7<_G?ZF;VM7#K-POEY^_*5'?
M?AU3+ZC^RP*];_@[><'IG7_&=_[YKK^1%Y2O^UFXJYVZJSMVG<R=]94W6?1#
M=Z)Z4Z*ZE234@:PVZT?Y2QM!W[GR&^YR@WMG'3M<#_,>'C$"I+\RZIUQ[/QV
MZM/R\7IWT_$7V$!W !OZH0J'N/Q],WN@Q M)'7D_.YNU(^3 -, TP#2N;!$4
M-[&,4XR3YG^ <71X!G O8M1UE*^]9(A^/&EG<;[,LHF383V*CW@@;^JR(UJ5
MO0^(<!^'68\J?M]35"OEMT<?WAX_8*^LK VQ%TK0VSI.WY%6%R^8O#%]?#YN
MZE;Y)V5R;?TEWIY0)O>VN5B_&KT/3QK\%L" 9W'ZWQ___E#[YR\H)6O8OWR!
MV5/MGX+]@_V#_7=N_Z]BJGU][SPX,"XP+C"NQQK7Z[9(!FP+#EOVK"ON;T>_
M'[T[?EVAZDUTDYF=?*_(H.01>(<5]_L&?8^70#_.$_3TB,J.5L3OM"JL"J#S
MHR4A>.N(YRA2[A'WVB(3N452*AXS9@?*]?6C)82KS&?4(!R809QHBAR- 8ED
MD_/)*4KB]:,E5U/R<Y[MZKP((0,F-]CEY[ 4?^]2S#LA L#\'JA^/S!_+UJB
M.\.BDEXC8FQ G&5^T98ZY)-(3@8CA'?76<5JQR)1"@E.).+""&1U+'-9#&=1
MQF""[9)5'M:V')J6EXMTV;0<&.;YGSPP###,;C.,#5'YP!/RHK1STS0BR_.O
M*BEBI:>E1\M*W.($=8$*Q)/6B$?LD24IQRW">6645]*MM'39 L,P-J!* \\
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
M<.MEEDV<#.M1?,0#>5.7>I$'G>?LC:QZ@EF/JG_:4U2SHU =?7A[O)[N//)
MQ_Z!'G@$8%UWN=/OCW\'RP++ LOJVK)>Q53[>@K&!<8%QM6U<<TKT\&VMA0'
M0R.CATK]LI'1F^@F,SOY7LU[&3$X9[9W$W!Z>HIL1T^Y[+0JK J@\Q-@5!J;
M+ M(!AP1ES@AJY5 *6GA)6:!$77]!)A(+I"D<7Z[%HA;$Y#%RB"E'8W41QVQ
MW=H),&+$0!(,4XZ !?;)]($%>F ,>Z@*S]4+PW%'<A04$18Q<T;@%%EB),(2
M:Z(DYTS[E5X8S&:83P19(33BT3)DK4Z(<IR,P]IRZK??"X-NL*/=LV_@/5R1
MH,4%( V0#JA"GTG'X(2]X (IY3/IN!S7Z) H4E+(S"T^$,JODX[RGB?F'0J>
M&,29P/DS"B,?G(J""9'DLS1@HH/,D< \P#P -\ \^ZP*6^ %Y@FE.+,!U]SF
M?T)$F0T4PBX&ZWTD#IN58"10K&F.70@Q$7$5'+)*462HB=[K0)/06TMZ238@
M?(/M^'94[V&R=V<8^K9I9G;D8S5.V1 N#XQ5;;%F%5MM1LXV,53G0SN"$>#/
M@<1=R:0?S:#W$9* BN^F8LDI"=9*1(W$A58ELL9Y)$00F+M@2'#7J9@Q'G%@
M DFC)>(>1Z2C-LA@QKV7AA,K;Z3B FHQO)I-ZM'G#W%2C\/_L\-9/#FUD_A;
M@;+C\=EY'#5M67I7^U,#18&I@1F &1XJE*?-K.A'WY.>3Z3HAY#Z9EN +H N
M.V$X@"[/KD: +H NX+Y#5'MS5,MS".H5YB@H8A%W)@>G-$KDJ2>,EE++)%;[
MZEMJ&2.(:4<0%RI_)EB,*/$!<YN,80:BVEZ;Q>/SSX=X!N)A;2>*]C;5))[/
M)OZT33-GA:RF]EOUM9Z>EDV5K.Y-E4WNX\D?U9?83//O0-= UT#7^T77>U&)
MY(UT6-"$A,'9(6!1(\.=0CXF%H(C(H;019K[*/S'K)F>Y5MI/L:VG]6G\2?[
M[>^7D/EF/-FH9\ 9V2N_ *J4@(L@,06)J5U1(T 70!= %T"7OM@6H,L!H,L.
M^/$[H  01]\_4IT%I57$R(O $5<Y,';E1$]@45!EDM !=Y%8ASBZUW$T%'IW
MEV@O6TB+0FY_18W!!0 7 %R _7(!MI'H)A8K@C/9QL@0U]XAHTGF:\:D<H9Z
M$G3'B>Y/XZ,0ZG(/=OC!UN'MZ-B>UU,[;/G97>?GC^7L2I,7>A(G7VH?YUOF
M'Z,??QZU5VEWSSMB<380&'H3 8\ CT"B"A)5O;8M0!= EYTP'$"79U<C0!=
M%W#?(0:^I:>N=4G&:!&5+"!.#$&.4(.B5X*40K VX=QIDAIBX%TS(J@5[\R'
M.3ZUH\_Y;NI1-9Z>QDF;QY[$TZSM]9=8#<<-="<!)H<X >*$'CB$@"Z +@?B
MXD"<<,]>62I=: 5#IG2FY50+Y$)(R#LGC=8F*+(2)VBMJ70A1P>22\19_DDK
MFV.+E#_/A+/$I>MQPOOB%!U?]8G>CK*+%'_/CM&[.'V?/MEO'\:3<F='T^FD
M=K.I=</X:?PAQPZC:5='1BG$ , 1P!'@@8('VF?; G0Y '0!@@4/-'N@BO-$
M36#(<<X0#\XBPVA$A/+B2.KD>>HB4PT>:$\-! JI._-/LAY#JKEK)'[46.I]
M)>NGA0+=B?"@@X5'#OB&@ )0#% ,4 Q0K)?*""@&*+:5Q,G]0MO1R/'9E0A.
MR]^?WE%<8D8)$MX2Q+E5R):!EL302+VW$HN5PWC"6A)BC"C_M0QDX08YZ1BR
MB2=J+8\VK!S&RZ'O93ZGZ]&7C,K-I6T>PH>[?E@>"._9L0H(#P@/"&_SA&>=
M5"QPB4CR#G''/7(T$F1]9D%9R,MULI\!A-=GPKMK4P-#:?W"D+_.)>+&P_ (
M@?]V]/O1N^/7%:J.SB?UL&)X4%%,&3@>P!E/DV)W4[O!!=E-==J"@Y"(4#YP
MAI@3*D?$6B.GI$92.1)PPB9@<MU!\ X+YPA#"IOL5"2<G8I$\R6D4L0*+3W#
M6YO\33$><,P.SD& S"\ "/#1?AC40:K3<X7$&'/BJ)1(AI+/M98@30-')!KN
MK1+:1+Z2 Z8DB$QTB K"$8^9^W1R"L5@-6%!1LE(EXSWL+B8;+ A:D]9#_+
M0'] ?T!_NZ].ST5_(3'+J:,H2"]R\!85<IF]$$Z6^I3_ZLS*X"W+O?=,$41=
MS/3G9$3&"%EV1&,.%AGWDCT#_3$Z4-( !P(' F@!!P('[DE*,DJ.:= 142H\
MXB$&Y&A0"%,:.9/$<[(2H,6$5; B("EH*=*1#AE*)!+"F* =9T&O= '86$I2
MJH&DD)&$XU?/>ORJ3$&W(Q^K<2K]O\[&Y6NRQF<=S]I3Q5;C%W,NSH=V!.>T
M]N_$;+\JH784DW9: [; UU(G';A).81D.3J4T2"G; XK5<(B!YLIXI6(4DN+
MD],*!<,RQ]-DD&8*(Y-L=-%)X_S-"=6":C&\FDWJT>=YD\ZV,^=&)T\1R>&<
M-!##/L%"GT^V]>.X5<_/K?5#2'TS+H"7 RC !W0!= %TZ36Z[++S @Y\_S5@
M"U$MD3H83S"R6$G$M8W(<&>1BSPRGHR/=.7D3**&I* MLB2_D]M$D0Z1(TE\
MBE(%1M/*45&(:GMD%#"#HKLQRD5WFVH2SV<3?]IFF;,Z5E/[K?IZ.32\J;+!
M?3SYH_H2FVG^'=@:8@$@Z_TBZ[THFZ*,49ND041CAG@B%!FG,5+290*P5DJU
MVII^C23WE1%6'^/03F/X-/YDO_W]$C+?C"<;]0NXWN#6-91+ 1?M*Q=!7@KR
M4I"7 G0!= %TZ:T: ;H NNRF'[\#"@!Q]/W'CS2)(LJ +$EEQ)OP2%/KD8O>
M.$LHTU1UD5:'.+K7<334>7>7:"\;2(LZ;G]%C<$% !< 7(#]<@&V0-",91*6
M22,624!<.8]L,@(QZYGTFL8@:<>)[D_CHQ#J<@]V^,'6X>WHV)[74SML^=E=
MY^>/Y>A*DQ=Z$B=?:A_G&^8?HQ]_'K57:??..V)Q-I 4]LF!1X!'(%$%B:I>
MVQ:@"Z#+3A@.H,NSJQ&@"Z +N.\0 ]\R)D@RIY/P*& N$"?2(Q,(1C&P_ <E
MJ94K39&?F*2&&'C7C AJQ3OS88Y/[>ASOIMZ5(W+8/0VCWTQ&1V&2 .30YP
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
M0*7I*V)8Y_\&JC*8/8<"LMN/F>VO O8'RXA3W!*2D+8YI.31.V2,P"@R$9+
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
MX$90FV YT#2=V%$]UZ[+4:P$ ."#>@!,MI,5[BS[PM: "-6@KF= .US8O',
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
M!"5EP+1CQ"!G(P"LH\RGQ#S\=1,G5[GS/FW:P-T(G/(:<(K[[+;^9J/M8/(
MUPPSGW,WAHY,-L%.V+P;+PD+B$>ID:6$($==$-P8[I6].=F)&I*"ML@2EP4D
M4;#)(X='^!2E"HPF^<23O3G^?_#)AI%68!' ?Y,8JS.XX+2NXB@ #"Q[9E:Y
M6V$C%? #ZU636)]'&/;G.+SH=4E: J>*L)@UW("T<%!XW7AP.#!+3+1>K\5K
M?:ZUST!04L@W)H 3#1""HF=$&AN=4N))I87W-T=L7S(T1 )_)#<(--HC[GA$
M-B9PP@/@.554&[W>D4A;[B-8R5XQF:&!@8# 8I /,%*'HP*$>>+)[M ZL(2&
M>O!U=V#H[VCNWK2H=[#?.V'N_GDX=G98?8S#"(83&+J3\_&D$9I'&9L/FL"?
M1M4/T<<S!]8WQ43WFFD$:84!7%2#T>=83V-G%%F(E((T#@4C2=YE8\@I,,ZH
M)S'"YU;;>%.1*;4,M-R#YH))P)4%U-8:E!_,!.\-EXJ):PEX/S5$G\$X?AK]
M,AE\ME.0T?\;AV'!E:WU]T^DS[JCHH-1Y6U]FO_]\\>WL!A7YTOBT"E05TVC
M/QW!2#Y=9'L^4]K+%\>O_M!C/K6C3['!%)LG\[(WP?EDG$%T/+F8MRF8GMII
M]07H6UY53<=5?6H!7+*3 F3":,?^']7L'!B0!7OLYU$,'_,%'FZQ0&*:36>3
M6,7/\/JZ7[VI*Y"&#%]S;;CYVHQBUOO)#!1CD.-,("Z-VQ-F\R_/[473.^'R
MM0O):0I<J]=P83QK'C*MLI9- ;\JF^!! )>C6#'<P"7K-Q3D!]OJLP6.Y6=>
MOA#&.IA>S+GD_7@&OXX^5><S )-EG[1550Z#D$>?.=5LT</$-X^'YXVKP;2N
MTF!D1QZF!7@&7V;YKRL7O9W5\=J3\H#RD^:L 7$'OK@XBFD =T\N&OX!<Z\A
M_W58.;6=011'!4L46R3 V,\IO1X98CT*DNM$-0<CP-U$%*5\B$90)*(4B N:
M0VF.(NPC2PF;*()=JT@PF_A36\?W#M:A!NM;,@-PEVP^T*5F[QD$*0X7XIJ5
M*JO.^8(#\V#!="Y?('L@A(=?]G:T..1.%L>.(;8]T/=^5/W- KLKO3"\OGWU
M;J[> !$_@':_^J[7:'\&^F',*SP,+/X^:Q#E\DH8%#SC]QG0D0;YFOH2D+,E
M.P=,$.,0Y];?'5C=KWY97 3P==8 1/XE?]6L,OF7^>/@F]O&8@'E%S>-9U.
MJ%%H\&XR@._/ ;564=G-\K":QI%7 #V>P2+G+D<)EX'TV0HT*AL_\.RKE:-Y
MO)T DD\N UW-0A(S,_)]<SB[Y 18_@#  +*?!]GJ=1<W+P!#P@,37JW=\ZH:
MY/4 ")TS^';BSH>S>DG1S:7G^E.;%S4/[0; "A8Q.-4"Z0B(R:,QR F%$?&
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
MFZQ%!DOO/,:.Q[5H<LL8M%_72?48V]SRY1A<IP*#!09?EF%$<Q\8[R5R43(
M)8*1PV 864,<YEXE[]8V*EL&I?;\)-.CV.RY/^XB8:AD>MS6\V9B0VPFOJ1W
M%)*/)+UCFT2 : ()R0JD$Q6 DLDC8XA%43OXGZ>::+S6HD]CHKP. (O,(&XM
M 5"5 ?&D/3.4\J!?4E651Z9O;)5TPVEB5(!K[PQ%W(2(;# $@6\O@PA4)!G6
MDFXBCW 7S(V+(<\2SAW/' K6\6"$2DF9CL[2?4DW!8<>L-VZ4^V[LB';1@7!
M%V9PLRB4@06$2)Y/W9J K!8$)<-8C-$33]8,;J<H=9XE9*V#>U0D2%,"$.<3
M9TY''[A]JDAD3^HV Y$/+\Y98*K U#.%J1<1'J4^"!)SIJP FXT3;P'N(D9,
M)QR35TRS->NM96#<<V;)'94*CB$XN@TTEVABN[A2^-0%_'V2N"R-6">!/+&
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
M\+:+:MA,7C4 1#J--OP^LQ- T[H"^6ZP:S"J/LQ&HXO/8)GWJK<P V",CP:
M\K:NOL3A,/\[3FG@8]6,KRDD";AGJSDP5\GZ7-END-\"Y$7PSP )F^<#V775
M5"6K8%J0!Y2,PZ8RW_A2NIH!5O;3),Z!LU=]&4Q/<SG P;RL67Y9AM_3R7CV
MZ;1*\X)E#ZINND%"G*(>>QF1D IFVVBP$Q+#2''%'0E.1I\>(R%-S/@V\?CQ
MDL@?@,9Y];5?8&#C<$!IH9BQ2^6^Z1$]TI#;<2C]>\;14I%2DW@TV$28:@JK
M2YYT)X)!5)"@+ <!P&OUR'>>[P^S,\"XB_?IP^S\?-C(MAU^;X=9!SZ<QCC]
M:31W>V'V?XU- Y&/X\4"].CRI+NA[],7*%WE4>7F3*KJS"7 E$LV59,YG[(I
MML"U7,[Z114&%7W!R'TE/?N4MW )Z6.EVW@5NZ].Z8MYU3T;<?J0Z4(W=QJ>
MW"$I>PGM4EPF^(IB70@N!!>""\'=)/C^!*[GR)++NL/\0'6'VV+74Y0=?I/#
M, ],\#JH7?E2=;@07 @N!!>""\&%X">RHP[5O^&8[:AE8ZH_NLD?\C%VOA>K
M_9[&UD7>7HZ\K313ND_D'GA.@T?Q(BM5/-21ROFI)8)<*"X4%XH+Q87B0G&A
MN%!<*.X2Q9UHI+A7'I3:.3LY.]N=S[B15MNDGZ%Q0K-ZV4J[*&&AN%!<*"X4
M%XJ?$\7'4@.IFP43NLNO=6:TWXY#<RN89L@)(A&/PB$=HD581(J=U,;&5MIQ
M7#_\\VNF]GWZK9Y73&BI6@(1/<VVKPRUSTVN@C9/KST%;3J'-H)*23)4.*LL
MXL9A9(0EB.%H/'<\Z/4*=;E@2W1$()($ [31"AF6,(HZBNB"II[A)T$;U<.<
M[+L.W4O=W]P!R5;_;LK-S0, H3C]A>)"<:&X4%PH?H84'T_5OVX:XEWFV %,
M<1HHDS1@I' ")YZ!@6V,-2@%XA/6)N)L5C^R6/1U._R(?/T;PE&\_2-0F@(S
M'809[%,4)$DD@U&(*Z.1]B$AJ;4B1$<3^5HYUET\_GW#S"&<_!>[K_^P).:_
M#JQ;5-TJ]F*AN%!<*"X4%XJ?$\7=, \+$YZ>"47V7^2TOP FE W1]J,6'T['
MDRD"<3E;JS(\+%Y3H;A07"@N%!>*GR?%W3":NK(-T0UN'&*+P2JLN0W(8AP0
MYU(B';1 .8-9.F.]5H]J>WM[4N$R"GWQ=C:9Y%Y;[6PXL)XBN,5MS8("!06>
MGAN'R&=PR6(N.6)$,L03,TA+YQ$W45HK+74LM)]:O#\4X+3L.CZA)_W7<6Z"
M5QSI8HX6B@O%A>)"\0NB^%A.K!4V=<7ZUEHX0PQ%SE"%..$$.>TBLD8Y<+4Y
M]XKOT0?_>3SRK1K@A/8D$^4H<=&@PJ9. 8W!U@O+!*)2T7F_4DLX1UQ[KV7T
M,0JQ1S>_?:!A/:ED.47<U5/$Q=TO%!>*"\6%XD+Q<Z7X> ZL=657[7@X=@"3
MG$7KN>8*.2G!)"<8_'@*OY)$)6%,6K/7_?>V#''98WQ_'G\Y4'Q\NE/0IH-H
M8Y2200J/> 07OCE0[(+BB$1#F$Y2">SV& !H[UPQ)_K1;O\+V-4OUF"AN%!<
M*"X4%XH+Q2^>XNUZP^RW:68G)_VXVZH6*7]94E[V,=N/,/Q7P[L8D 7Z[*=8
M3>*9'8RN,I=S.G/1PD)QH;A07"@N%!>*CYGB[6S$/7?)7"?W,F[_\^PL3@9^
MV?F#8*\X-4A@2Q GSB(M)4?"!4:9, 9+W_XFX=(D>C.WB'Y=&D3-EQ_!'"+7
MXO2HCOXDS"87T4YVM]0V3;3HR\M9OL::RW#_GE/;,CDE>>WH#LUVAPE'@"]*
M)\E),HAY&A!/+B#-*4,$$Q^-<H'+M0,(C]\6[ 2^R#[N,+Z4P\D'\/3#H/;
MOFD%LAD+TA>*"\6%XD)QH;A0?,P4=]0$;SVGCP1MI=$$)?@!<<TE<C%HA*FQ
M@6JIJ#)[#P[\L+"A?@43ZI<X\3?/^)W/)O$RVP_1U72_^[+]9']SIZ*]&8G?
M%$TK'G^!FUL/+ BAB;1(4A<1]PS<24\-\A8<?XZM)>L]SUN/%>P5;C;7#CL\
MW*P& .!GZX;QED!%&'S>2MH,_/I >?OO63T=I(N'>N97P]F>*>]OU YKM!Z-
M$YK!+_/VQ)4=A6JX3;6QRDYB-1CYX2S$4($T3T]CE6"@U3@U/\-[FZH (%&A
M<G9H1_!=?1KCM%]M5QF\>06076?5#-67P?1T,*JL]Y,9_!J_GL=1'>=#'L,;
M)]7B,/SJ,_J/$;6',+E:E;PM1$@>E0A]A(E].SZ#MUWDR<_\#M5TY8"Z']<@
M13!- _@'[@MYCL)U8:BG\,\9/+#.LK(0 +@@__8OM\W7O<-M'92ECHX'1Q&+
MUB">X"^3DD':)V6XI@['>!.430C>,P-VH\K-Y1@QR-F(D764^928A[]N@G*#
MQ6^!9QM/<LAK)SG$?2<Y^INK-QQ, ^":869E5LR.S&>*4;% )+))4[#IA4.:
M68^D(%)P%K4F:P'Y1 UI7 ";]P>Y311L^LB1)#Y%J0*C2>Y_/C<? CSX?,)(
M&V2?GDYBK,[@@M.ZBJ.,_W^9#2\J1GH5Q90W$P\_L%X%X'T>8=B?X_"BUR6!
MD%H*1J*&V;0<<64=LA:F61 :C)..8+QV3-0;[QR#BU*(H.")!*252RAZ1J2Q
MT2DE]BT0K&5KZKDHN%#<@*FL4=)Y1S\!^!K).-(NI&BE!'%<:R#,M.4^@NWL
M%9-9P1G2 FY,QC<(KWC<NX+3_N9S=T^FX/7@Z^[JW:\./>XW(0PRP^PP@\M@
MM "GP214O\_L!,S+;%&D09Z8Q8"G*_;+)/I\E#5DJW5I<5[9*9D?_A2,K]@E
MNT11S P+'A'A ()H9,@0<!L)58HF*HC":^L8R+2,U'ND2;9E0*B1P0J\S*2=
M##1HX^*U!K;O+OGQ=I4=;^?<:&UEX]T1_.FX^A1'8(<.&^&V >X8U--LEWZ.
M2T^C$3&X>13G,Y+]D4:@&LL7?)"4!CZN2A/X5.!2ABK,)MG!:50K9J-X*90K
M8IKE<RG#"PG]-WB"_WTVJ!LISQ?]93::O_OG./TRGORC[E4_C7R_^O;5^]&'
MGWYY]5VO @[YTVMR7L]<'7^? <F@Q"%FKVLPROY4!/=J-)Y6HQA#8\;#I>?G
MX)G-?;G9%)S^ZM-D_ 7HA)=GB][-:KBWKOOPWE5Z;M4WWJMFYPO/< @WC2=
M40VRLG01SR?9^)]>7-?++Y/Q-%\RO^8J;;PC*@AF9 X"@Q602"[M'@@8B-F4
MI-02QI)GD=Q4095DT,Z"Y6FCAWM$0-8(AL"P),ICC[62UU3P,G=CP\'O_\H\
M>I_]B9:4<7.7AX,KX_4X0,;I8>,V@GQ>:ANHUF;8_F2S_SG:0J67"K>CH_JT
M084P^+RU]&_(3PI*4&8E1UA+6!*H$0ALWH0$-H%A0HE9CSGN8OTV,OQA=G9F
M)Q?OTP= E6'#1SM\:^O3=\/QEY]&<X$$=OXZG]^/XT;$ZX\Y)O<1WOO]<.S_
M\:J*(-'G\,SI9!:WBP'O%E+)5S]M4&65/Y4'!E4). 2R><FB51UHY+^NOMBZ
M48+Q$*ZMJV\;21[/:A#V^KN3%7E9!CN;6.>2G 4+<F#]Q,ZFXV55CTP2@$V.
M,^7+T=!>C&=3&._7&%[/QPZ>41]_L[P!^#*TYW4\J>.YS?D^2^XVP<7YLU_=
MEG'U&9:UN8*?+)^Q(6MJ_EHN^D*J;UZ_^L,=%P&.27+_-?C>:^[YWO2YUH]\
M!ND37L;ZDL9Z3_*A?AFYAR5OHW/UFI\E3T!_\K?__DJ]>BQ_NG  >EL#Y,L<
M3-QX&';:U\DAW;_-8SX_YIC/?HO+=X&CG02B9UPXX:$X=-PL*3"TBR<T^%I
MZ&!U+8K!60S.QZ(:*ZAV+S^7NV=_=),__"G'Q0NL%=NJJ-PA58X5E2LJ5U2N
MK')%Y8K*/5N5*ZO<_NM [N("[U8SLC/N8ZLG<?*&?W5N+^9I%#G#\,:)CZUJ
M 1TI)P^V0-S"'Q'E;OSIQJG#P[<YV8IWHW&W)*L(T5U"=( TP$ XQM(HA*7R
MB(N D6-6H:2"9H%CS\3:*?&'G!"ZG@#XRP)(6VK\8L3V75^*RNQ)9<JZ= R0
M4M:EHU:R;@C1 =8EC9W#U&A$@N.(<^V0,Y+G-%W%6'2$L[74WH><=-SKND1Z
MA)&R,CVUTI25Z1A I:Q,1ZUDW1"B ZQ,4FDO&&$H2&K 8Z("&9%K9*FHO:34
M\/2H0R<'6ID,-F5E>FJE*2O3,8!*69F.6LFZ(40'6)FPT3)R&Y$P$2,>F$).
MA8 L#3IA3"UVH8WB$7M=F6@/TQ+-.U#OMV62[ Z;@=U>W5J%ZE]O*2R7JVU\
M&@$=(1^ZCE_]J1U]BLV&X @&?;,,W-C!4.>GK;<1X6XS]V"FP]&!^^$MA)>
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
M.K!-_?9)Y89-@ %6@7K."W#[X>-Q#HU59]'FW^$)UOOQ)#2;>#E<4-GS\R&
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
M9X$W9GM1#00:"%XR$$1Q2"-,+4@$ R#P8DY"ET<D\ +3I( ".YJ?/R0QX:!
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
M1?EFP[V@I-\+JOJ]H*>:EKH G_<V!5\R97LG^F3[]G<?PGW-U.?S$\:9[WO
M8PZVFO&7'CY?M,7P.5_YA8Y$;\#P)=B:(#%)8GS$6)_Q_B)M0$0R; JM,C:,
M%N>D:8L7&_0<PR/UFC6(>D?F&TBJ4KD#W6F6CX*+$N3M/=A\-6H0=0TH.;"S
MSZ622XMLI=K4SWTJS?>2<@&D_+TRSEC=[FTMEJ)6/@=\IU3[:H"5$'#QHLA%
MC9-=&>"<+L"RE;KVC](V_5N3*]V,1JM(#)'_K4AS:8\/)B=-I]:#P=_P@3@@
M(2UW1!A56^7_8 F5+Q?PWM8FP8<@G!HX&=M\EY1"R(_6.[2-Y:!^H(%?"EC?
M2N3*%4 S-ZW1X,(;Y@:LW&_%I< B/4;4K=P-E(7'+0KTFGX%M2]75)H%30P\
M5\MLJ'\O+G+C_Z<YNE4J?)4#UZZ8H;,)>C=B#BN*.)JKO!QE",FLL.ZI;;[5
MK^7\A@??/.S6O%Q_,SX'E !^PI ;(#M<4@PH$BJ*H%E6"RI3HS;Y7(Z^VPR#
M+^R;QW$A**P9"&^CPGMR_5L3;WVI! 5+J<W%&HK"B@I@K\+#\-J_->#+\93U
M=MJZ>.%)EJ0-D</25XVH>H>HWV23:6L_:%JO6!2&_B]5ZUZMV[CH>N6\W\5+
M\T8ZVURZBLBV(DM ],Z+$@Q,-)M[N98N8RM-<T-V+T&2[TITD[8AR-SO>?$#
M4.-<;.\5].X)5ZR-OU.9,2D-V?QZ:+N#9UJE:+I+=:Z,8YQLG]^W [914O*B
M;LUWN/F^KM_M21;3CGE]R@$A\YY]7K0:&W*X3#Q",P_86B97HMRFZ\0 F5DU
MW.F K4"1I#)@LQU+^0)?-1@24>$LC)0,'K'.W_W+4%HO8!$1K,I%)BKET<F=
M!RF"I4@7L7P9WK^ZC_?"C48LP@!(7>=_5DV2B!*EK^S],/23=SWB6J)<A3J(
M@<2V T71:Q&J$MNTZ39&I'L/+B"H5? G%(XLZ)7:\NA]U974)@TF L![K[=W
M0%@752BQS6"I=N<6]'>QRF>MQ,:K47P[G)">>RP8;7#$]<J;'@;&V@#A@J(G
MOL,@:1>Z'6?<M)X$ON=:U"J[%V\^G2@10K$4&.GSPY+<P PJS@$?5"9NT65\
M)' Q2ER_!.T2KY%^\.CKFQ[2+=O0H^L?K *?<:<;6A9.2^FU-14*1+^[-WP#
MFE7M"V:MU0?/S-=>@L_N=0J&#9,&-_@JH!MO6-TI=)A$>IGR \G#S:+9Y!A4
M!=/M':#,#W$IRAUZMB7"D,IH%:GP*0RC[; A:0S#:%1,=5NGBZNES*M3X5\I
MC]7F"J/K?2F#@\NB[(P_:2PK2BC2 *;0%.. 8'9@I&ISR"B./:YAE+H:6"A=
M5%^M-<:T.@2047-%Q]N(-P=#<1!C!(NK8*F\6?*XC)9OW%W)H4F$Z ,,M9K
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
MDFS0P:9/+CF"S"0P;TWAV"Z)N$_!D&6@_IEPB1D&V*XXXJZ_93)$?DC]Q+8
M!2@>L7"QL'?L@]W@)8$=.H &P032Y.PIU>_>2)3DTTF4C)V0L02,1E,('S#=
M=PGU;(\$EO!<G]KPS98B31)P]R,'= <L.''CR"2Q*1BP#@S$=K'YW)V,1ITH
M>8]$257I'PU+>=+[CAF3FP!V)!F3GHBM(/0\$E(W 0X#YHI%[("_[5J<N33A
MX18N6;[M<)Y8Q'0=@5QID\A.?!+8S&*!!W9B$CU]QN2M7.E."Y=N29C\TOLL
M31N]3_:E4.Y7LSWJO:B\R4-5D.A,G+9&TWXR%^U^3Z!.X$RT*=V+/?NJ:Q"<
M? T"7]<@T#4(= V"%U2#P$^$Q>$%A$>Q25PGM#$O,"'"%2RF%#ZS1W7<DQD
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
MS5?PZN<U(']N'=!=EMELB]JMO1BO7&!4J[@3A7]TO1Y6]:,'KE#G.0U7O6_
MU^7OJ ?()BRM/?GLO15.@PVPD4929)ELH&6H&M+]MB;%O?5!DQYDEO4&BKB[
MOLXJLJ"X2CY8;;%4W2XF7+96,OS-I@-PI%6L76<>WES%VKZYSK1YX]TW_!;-
M _^!MUISRWWHK3>.*-(#&F5 TR_/^T)K;)_6;'5%\;7*LH&N*'X'LZ$4;9)#
M9?P"MA$?G?7Z$L93H.;DL.AXCP_V<A9J.;N5EM_2*RUEXQWCTH;4),#KB&?;
MHY>CZ\_?2LO']CFXG92G 5\G;"1H,;N_F.UL\Z#%3(N9%C.MS;28:3$[*C'3
MVFQTG_>6ODYW]&]WCGSW8DRXO.;#F+3?!7V-VZ!OVN2=VSCU+A0[C;HZ1TV5
MPU8K'#X_+VX@SC,(F6:%,5GAM3VS=O</.A9^6"?'W6=^:[.>HV,,C9P:.35R
M'HH5[.#6-D>:&2;,#!HM-5IJ 3F8G>G.[, _9G[0=J9&3HV<&CD/CIR[VP@>
M"S.,"INZ?=-X?/6U.V:#53'ER45=C5T3X+;=1/N6!-I)%:QZKE3#%SK;4V#T
MDR> EG0]VY-@]),G@)9T/=N38/23)X"6]!<_VR?/O!M6) G@@?<(R@WI/"RO
M$7252-K'FC?4.)EN'*4O$+LJL]76U\*R(YBB]V:&:7LO+LJIMP$F096I!7Q/
MG@-&11?+O#4773/#A)E!@^0DJ*+E8F(<,/(6J;.SY?RQ<(-.+=%P.2FJ3$U
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
MS+=#S?X:^4^/]RUO9IL3VGJ<C)0]K<=E:+0Y%GG3!-#Y^%J[:F;7S*Z76Q-
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
M\WCV;FW4Y2+2<=N*<,N++E? '+\L&^,[7<K]?:,P>6E5IC<RGAVXY@7Q^P[
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
M$\NAS.<V*B"?AX'B@\ H #Q;C49HB]\HK!_0S[:",1BZIV,9GOR)5N"6G)@
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
MO-W4[^F0/96]US-J_@()CI28,=8J-^=TY;> ?!D%16#,&NDK\FRQ=)Y'R4[
MP!*G0K..O#IL:0V#JKA0)HLJ!N&+> K-&F_;1NQ]L-)ST0:M,&S.8+@0FR6I
M(@H("@D]'W"JN=#EK.QL@O*@_L$87H$:AI/6C*WSX_L?414@G$^13Y)!0IV2
M-&2-'H;?1QU$H<@J3].C$4+PN(_ 'Q-.$=,XG%)5)(.Z6OU3RL%A!Z$9&:4Y
MTRL5SPZ;EP&ZZ2;!21/JDQH-*HMJ42$5T&J3GM0$=LQR]:JM_7-;(\9%?EM-
MM&C/<"P:O]-7ZGGJW2@.+\U[IDN'8%39<87-T43H(H=?:O)LC846&Z2@@2Y@
M-#F$*?V^GA(]):XW*WXWR KL#](H EVEQ:T :8VU*Y5M3IU%9662EPO^(@UR
MC.09H3:$L3* BN.4JM@@ ,,8D648C/0.T29TW36VVB.L0E7:>M6\*.U$7$:A
MJ*7FC'O=N0L>X0GU>CT#> :XCR$A;J+4IB"Y94!N<X9.%I#,CKEWKLEAR-SB
MR1)YE^7"\T+G+_D 2T_+(7[?U&;S1^4$39.QAKQ@FE]2 .,KH3WM/TCX$T4R
MX"P.$U>QXV"NZ5HT[2V>TCREK:<TW7AEQEJ;2=8(O8,-O;D9/DNY>;?SL +5
M;EJRZJ6R[7FG*7_%P7T%3L4G*7T.@_>?@T]2I,QX%4[5\:]2=;P#X!4+4#9>
M3G@Y81QC<CBH*;_0@71V#;CLT7H:])VP.VL+?C-AG4?C"/N+V^T!F# 0'YS;
M_QO#4VW;&C^OZ78S D#!W2R@&9F]$'!<%4.5('[_XMN\@O2$OQI]E:OFB=BX
MSE+1<*0"_.RBID8RT\<B0*:<OAH4>10/R'&G2N!0L.\QW5601V"_8<HA!BFX
MRU3=5A"B?K10ZA8V7&R-"XF/SBMI5[%Y-)K7Q#A[/ K$Z9;A$*U-LJ7*ODP_
MMO&D$K8%'KZ9;FXKKY>_/;K)$P3E>$#!GN>[@^8[=O\77'9L[@?>J^,Z531/
M6RI/L5R4$VT4Q%*ZKE],VB'FV("L<C!;*4\,!(K]+!7BC68Q?,HUK\Q;HGKJ
M 7[(1&U:)PF9D6$FQY.*H\-#-:O<-W&=ZRR:RWS SLB8R:(CP3%8 H6&F[T_
MGE$\HZSIOLSF;FN7Y)G%SG( :+I;'8F*-VGI,FU<#W?T=A/J\BL<O8]JC%,+
M,32(Y_8YN@M^H4E^I?>G/-=VFY7LLZ1JG)0ICZ6FTA!+2$,I!:0)A%%).B>*
M<X-3ZGA#U[V>GA,GC1(%(0I6T9TU&)=  :QD<NWDH<[COF;?R^Q)?",+3JPR
M&@HVUX5]1.5Z<)HNKK737@VB#&@LU?IS&MU*#S1-R!7HW)]53&@A[YI?IOD7
M# C_W:N?W[U[]3V'-.EUB!&"MA877C7Y)PO^)W__J^.NX8Q#8('0J1UT,(]Q
M'C(R&O$7XWN4"4X4+!A'IQTG;>)2F492QDM,E.^1]MQUCUFD 5!T,(E*$WR+
M)?K&<MZR&6>1P!Z19CWX(I%WH^,.J5I&%-. :IK+-T6'1%<!MGZ#]N8B?YK/
MW;&#&,<PD3O"P <W"?RZPEFD5RB>Y->@_^,XC2D2\TC$/<7.<.)&\,]//Z.T
M'A?1M&P;/'I6M6G*6(HT$R?P[J2<2 1.8>ELQHDO!M5(")(=;"9PSJ.QKV+Q
M-+L^;R(5KR'60A4RZ0.#0$ #)8E$=Z@.U0Z2,8!01CIV)+*TU$UOS6X)C$$%
M-Q'(4^[1,,&O1'#QW2 7+JW0N9$!W+IC;O&+>;88FU>%=7*!^&^BX=Q%HUUT
M*4*,8O'?C*^B]RO<IY%I C?P'7Z=I^&;NP^ON?O:-W?OV #51XSK/=5PH=5S
M1O /[5DCCS5]:9MASXU&[]T_#OIL RV>; SA!K4S!S@$ZGW& 0Z\=VQQ:(4U
M,%)2EU6C-&03\J!*D%H"*CS0/ADR6<2X6^Y-3>XX&(H@R QNS\XLPH3Q #9Q
M"KCX9(KC^QJ9Z."34V*B+1I36Z)-?C1>,HK1TO HL67<U[;@\1JV4>-[N=3.
M4X$^I0/9X!E.<K1^4N0%QEO&LY#-3Z)9*1^98S)O7+JUMP19BW,QT-<IZ!=C
MY1Y<>W7-P].P:<H&OC+%PE' K).,5BX+H?!>$[L0>W>5#CA7\,5&@8&^G6:2
M]'[0@IU@M;])ISRG<)?O3 -:,QSV#37A$ZRVRNC(;.\]6(TY;.@/?L;<8!J.
M5:9XENU@SD%Z"Y+M-!GKW@HGDTVSRX0ZDLP\$.YG4-!^$3& E8YMUL#5V;?$
M"4$GT7ZI+FL:Q<IM 0E-3&<:?5'-2JEF:9;[/)FJXF*0$ZLVZ#="Q(UQ9K<I
M(5Y",U TQ) '-&9R+NX#Z7)2'LMF''.']1U0]%:2P_:@DD"402\(K5!$MP:_
MO-.[H#'#4?:%)K8-DV)8I_KB\F(<P>7JX)7D6MY.HS\0@N3M;)8R"_XES\?X
MS]F,W3C!40;B3N<RQ%-A*\+ CBC0#_OUW2_16(]?+G$ZG@Q*Y>;X!15JP#>=
M4W'.WP@T?"*\-\-9(-%-7M#O]3;#-B***WFMZWC_*9=-#J4;9+&U5-!U,)PF
M,Z>T(I7Q0$MYFHB8.ZJ7CKS<8R5+U9!XB"O(&Y14AM(*;P]+OLSH&";2''@%
M(?U1UPDV"2,RV+;U!G#X4,B4V8N43J6&DTRT+XZ%354\9K 1+69HUB$F/5"F
MX!A(S#_BK^!L4($8=B#QG^9U?#3@:5"M^''. PF<0(<)6EO%]H.RA31=I6=:
M2\EO73DR 585I&J9;66 ZBCEA.)2@X8J4+HHVB0Y%!NX%8EGM /;W7%PR=^J
M5,TF.<YZ'45W'.\X EY/0[F-Y@ NGAT)=RWG:1KJ^+DT'7CA1S0ZMXU8:N!)
MPP[PTMND5"&S,0II%/C VP7U64<#'.+5+#Z4V9V%GFQ,"ZTS%.L$D)-SW(=F
M<CG8'X[$82L'3]5\N?F*EN!:L"RMT%K5XOU4_+G4\#\@1_ KQ\<]_?2X, !#
M#/X2C9=,C[--A8[D<,?))2)<:6Y$/5THS]W"F+G#T7$?'%J8I5'&BH<-;#Q!
MT E8O0E$DE5H;S6I:3$@WD6!7;]EE-$<^SH34[B-I(>FJY#?<?!.3PEI9H_L
M0DGJZC5*ES:I13!FDJ,YB-/FBD'>SF>B3,%>&Z/@K&=L$"/^!?X"=-Q?\UMU
MHZ,D=G-D[F>Y$[QG*B>%NX392 <M9'LQ><OYV17<2K_'\[#C5) 1R=EJ]Y+K
MI5E<,W($J%I6G!SP*%4T-:6XP,_D,T:,"X6&N5,9&PV!F4"#-;'/!FJ>RP3I
M)$M(\3<6C+MQY]6CA8E'2*'K'Q9-'O+#62O10>J9DLZ.,6M4<H'6-,?!S=:,
M<@P6G+Y'-C+\V1#: %3U7T!'94O?;^E\ANX:ZE4Q,Q;NDOQG-+/T9 J*1X"N
M5*YLP]MRY.4$Y"2*V YK[_ZR:HC+0O$H8!9AM_1:/D?&,1T&\\7<K".S15B#
M]X,^TLH!H(M2O)YATX0A9)?DW7?"9_9V2>KOCN&PYX+>4A)3)L90VC&S9@BI
MV>:5C%PB*-B4+('(RE&BQ8DCI\FZ#FZBM*9,+!9_N5712\U.8QUS0X'0#+@5
MIBC2@&*$>JPANPUZ9KW(*7%AJB)/FU"2BK!+AQ57Y\A 3B</.XV&16YG>%H
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
MQMBP2+$>,K*[V"/45F+W?,PZP]ZT83+C:1$=$3P4Z6DUH5E$MVBBEE7S2FB
M&O8220:NP$* K[V?@<)(7X#^+[>F%N9J$L+N1844R3A$^3)9^%_L&9J7<:DS
MB_[EYZ01NO+AD(K\2#G:D0G-61J=)^6.%,4C1VU:T930KST.[:0[$QS<.@^S
M 'BI65D#H[CCAHAFHZFB<$O!XPT'.#_$*<?A.9=D0(%0<2X#_UM? 9*$3"0'
MVWPJ\SEH6BI0-7FI=@$T_P+N8,V.6W/"#5NPR^GZ?7]R+?N818>^\&1=DJP=
MKV?O'$0R1>X3/)S&.'D:9$[J@R+BA<8GIQ.EF6HYNI(H,P6E4F<F02>-Q1:A
MS>@L\M*MR-+*>H#V+]&\R,NR.="+VT?<)BOA<AVF-C%;'33R$\!\\<_*XI]+
M7_SS+,4_>VQ)_J;T,-B4!;&2B<O_S@L!+&QX=2R*&YDOD+0T9$H56? .D^]Y
MD251&'Q6=P+K\C\);AG_=DLJ[59Q5#:@7? CFQ4?.HS!7W/SAOP3=V95HJ.U
M/]6%!I;@G93N^.7F#H9I7L>+FH>4;ME(R!IK&$'H8G)UM4GB0GWPU.**K"-M
M@NG)Q1*FPP@%&2!12_^$ M(Q!>?FAJ?\@C[&Z.>LX!^)52'JBKUY<8JKG".K
M)D 6BC)R<\:L(!MS;72&92'1"J?3D6?E>(,,@=<V-2S;VM2+$[?UQ/J4RKZ4
MR7<&T33G3%-2N%D:&XNH393!C41WN9Y\D/<8_BL=H3+\(:=&N3)/D[B1X3')
MHV4%1A*OGN8W?$9N&0']1A?R+@1"Z%.TE#CBZK#0<?"C*F<X ACN&ZP4:8S%
M-NTO:#P5$O4O-1(B>P]U)I/81G4J3Y?5L 6E'6A)NN%@,/?XI'H&"_WFK;CJ
M(?K475> YY\%8FM+/=P"7S4SHA$7&%#=1!DA:EOHIG$YBX U(CS=GAR0I)Q:
MGZ/I^EE7HUI@ZP4.254VKB;S-9SR$P9*#4OH5=(@>2*%J*!YUIS4U'6$+.^R
M@"8\-YQ_6YI@7MM, SS8NTHR.BTXD":$KA%G.HFF9_2:>(6$$>JR[8@)V7='
M"Y:%LL*O#3*X8;%6C($.+Q2!:*K3LG'Y6M8?-8<2ZV&1E!3AK#;\=6TV^XV-
M9)"WEH KB?X5M6YJ]\VJ2$86MI%9\#F2*7M.K'6<6TS!G4EMO/:-K)M_2"5,
MBPEY<9Q!N&%-0]XNNP%6(95#\2G]&Q"@**J8%]V.%3OCT0W8E-R=\45QE0_-
M_G$"#N[]Z/Z9VR8&P4(BKDSS6_@XRV_H[M\TOVHGS)7U3" >P2.EIK"N,"B'
M2(#5XJ72]H#BRK\MJ2UOHJRYF2NV*<C1Y[;0D#U[Q^;K:G *.[J;G$2- 7JU
M0KBSC#K.X>FKZIF_QC=\I#,^Q$*MW\AHEGHF[3*L( ^I:<"8XGI*02V.30Z2
M2'5C6@Y6B /WIZ:8&U1F9E2&FCOB.A"T'.KI@"O,FVUB9C"9RPU,])Q'Y:&[
MRAUVT+&.(<T-*O$UJD! -&I4>Z-']:+XC8JP]6Z+0ZO!_5K15#*!I!&;UW0D
M/=@!'*Y8!P1OU4[ED+5J<]2M8E%WY0Z/N_%R,6BYSH#*P-F5=2I-P";(L$H!
M^3,JL,;3SM#E^S97&#;E.4GO4(I;AR9'.4E&5>,!>F N.X"BB9#(2#N.%09?
M9Y-$.4B)Y-GE94EY40GW2@D8@K'#B_&I('X8LV-W$IU[+"A^02O$9-]#;G/%
MD@,N[RF_&%-8WZ"I&]!8+6@UF=X&9]8TD3?0!C?FY&+'FRH^)]Q+S-PN*5RL
M)G59 ^67%/'@HJ3<@N9+<$PA^$Z;E5$F7D2@4(PQZ^(/R,J>D4F"0)LU 4T#
M)V"!&)8#?>]:5O (C,I4P>D)E5MH]W:&S?3!;9'@9&U<BZ W.664U*1RJ]QT
MB3'VU\D -\@/=EPQ[BXQ;TH-9F?N)^DXV54_C@JG\R0.W8O'%(K4DXD@($NU
MS--:I+24TM![I;#%&,'F:X+<PQ5M>MZ1MAT3NHPH95%,Y)0Y=3"8P,$\F"[J
MT>)"IY+<-AM]ZERA[H0,R'%@&F;H*UEA1//;1U2HCEM7V(F>)N6$J]=O6V6P
M0J0-HZT]\5TO#Y>\<" &VJMHGJ=;**(/RN2N%D[,NJ$4]L"%DQUGM56HPU2F
M>!"$<%)).&AI$D:7Z]58 ^IM]>6V>JL';&D0V:FPBLWU@6.$.CJK*#=6$M$Z
MDL^\ PQO#HQ*,U_#;Q5)RP-VPF "VY?&4VW*F9JF#F>L45NMDZ7HN6E:NC7I
M/_:.XZ552X<80/M-M8>WZ;NM)@75*<!"6>CFA+JA1U4V=*4:E!B%T_=1Y6EZ
M- *QO?A4MI999R[*S]+):PBQQ,%-$K7Z#$Q;I^-.(NW^.H%[G,V0%@C:]Q;+
MCAC%FM'3C"G/;1%NA9(LH4F:0CABLK+R:D<*Q;[7)Q&AW@Z#(=BG&B(D#!"*
MZXNT)W#H,!1=S4"'C6G=H9.1-CV*F%# %$)GX01G&)P^DXBX*+C!!#+I\PY5
MA8:!:4TS2E4X3U1KF_<EM-ZA4]%2RK/8E(68Y[.3A.E_N%-6B,W03;L9JJV&
M3%M[LU21,A<)3<'@=EY+.4S0>J=1.B7;_ Y\L%(R^%GP4S9&Y0@G:C-#E&B@
M2&%=N*JDX5NAF:E_,-4#0#CU(\,0W8@#Q;+<*Z/85)S8ZO<D \')VVA78W:*
M7)KHR>H4N\GBN- .B92.2:O:@C_JI&QT.Z!CMTRQ57"6*H.(:68V'MNQ),WD
M"X<_%Q;;+ CIOE.N0V_W'.=%AS.GPS7.%WV!A2^P< HLKGR!A4=7>>0"ZD;]
MGQ'PXOCH\C/*"UBOQ)BIW%%$!FG#6J5.P=4.RGY;G@-0[>I&*B/E5 7U ?0-
MY4655HD<(^0CUF;^L!!0-E2*PPD\B^?!Q6", *?'*W)K5FWK$(F^582L&0KV
MA8X*Z9&R$C9DZS%64PUPH_UW>HN8R3(A3(^1(3.G2JC V$Z1<3K,=5FJ:SYH
M=0AF"EC=!8HEL3_(!!.#HZ$TK3U!J5B)G.9@G>L)]#;@B54HSKI"NU/7!G5B
MI1R,;C;@\)6 61VEID@$;% LD/CA_V?O79O;N*ZLX;^"RIOGB5W59"39CNUQ
MU50QM)5H)K%5ECRN]V,#." [:G0CW0 IY-<_9Z]].?MT-TC*CBV-V1]F8H%
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
MTL0,;!$7,/<.[@>JQJ*BDV*A0QRVO_E)]ENH DDB.<0=TL7HENSH'LI033
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
M;SX"@1D.)W>C/=XFASB\\#B?EB0H%%<3@&+@.QA_,+7"0[Z16&?<A8BN[BK
M)6=SOEIUA^ *ZJ[@#\Y7@GU1#\8VK"L6O2!&+.#%RB/J__&_"P5XQ,5/^W7<
M0\)=F$"V#2 BNZZ%ZG1Y51(  R,8MPB-00<.*VHY1DF_W.=C\@C+S .@"P(L
M Z (Y4+6S<-" FXB/,)LW*5K7;A : SZKK^[Z[O:..L0/]K:HV"2PF--'+:%
M5$.NJKXN^1^B)M@*WGS N::@^ 1M689C:U(D+&-!NX682LOXL"/.M42>IAW#
M(C&*_FW0EZ?.II&XYN!:X"!W/P XKY%M)]\4+7G;V-@KY3[-TGHP19GZ,(^[
M$4L*<*;@_XPWO\8@=:X!T76RG(37)$1,PL*H)(DVG4_C_.YLU!XU8.:4<JZ+
M&Q2G!.P9K5"%7N68G4SKP#5J9V)"ZY:$3IO JN-$&UB+=N5-<&J:?H);R4V
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
MTNCQS/VJW$I:2SC TPOV\3S;G@#?IDP09W84?3$..#8&\J&\LXX-8=,]O]_
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
MMH3R=(=&LFT&*X$GT"$[[5"T+6I73;F5QMQ!.2W7CTT #D>ROCE@I98<=N6
M+5KIX ,>'A+2Q)PM')^@HV1CACY@;SQ0X-00=IGVOOF'V6]Q[?@R'"&130IK
M$3#U#OW&4UW==27FI&"8EH1NI8.Q^Q%D<T=@ESWQ!8S=S4*A+@/&)11GXLGY
MCZ"8R4Y ,.X$;7?,)#V<I8*DN-0'S 72-.>-7368VP$#/=-M*W$2'SJ=T%6=
M+_X>S6"+@F=Z)'Z@2CL$1J^UA0,(/;7.V(?M]A.$8^EZ@N#:;I%IMMG)-[HW
M_8H,.?2CS "950F_1+V6T._"'"%>B?P<*>XNW(<''4-!Z<<E:)A88F\"XV>P
M/G;?9,?%U\QDA&4_-5<U&>NXU\OL!S+.EI"A-4+6WDT*9Q'VPCAE-Y1-D?U;
M0U5YIW6,@%4IT&5B[-QEJXMC.>\#>'BD2VOL,5KDZ;J,.5M$ZLL5#C&(@V+J
M=.BJ/*N*074M=;]X<N7>>L6O.++[XTY(K5$8X.A%Z8/)LU)*1B(TE&IN3YX0
MK,@09DXS\(XQH]</\1^SY"+<U>\/\8ZE8G 7+Z_C2;C;453^<3$X,#7D9-<Y
M4-!L4D1=6SM@Z4%8X=;P=Y<'GYOZR2$];"!=.(V++MT\4. S90Q@'8;L?B:R
M"%?-:4;@[Z@D(9=A:1N^G18=[[XMF^K*P@L344#ET>>?D6HF)QV4Z))"I81V
MH+..TA@6[-^"1IR#6\%I#T;:3D]]MG*"BY9CA_'@ZFL/@K!I8Z!1"?#$7<5M
M9'3PV!3=GYI*7);&>0+N>21F&/0S5!$EXTQ!7Q#,(WC@<_))/;00_D.&N%/G
MP"_)]8$=A=$0BHIMTP0)--9MZ*7A1E!!]Z9>0="*O'K9H5CA*(LU+,CS)H)8
M5?53-%]0B\D$.ON._*(7U?51VIDHZMT$[T@YP)Q,1<(KC!3 _/EPU[L7[-1P
M)PT[H!9'XUR/2]ISL@W7E@)\)-(;.D@G,$/.,T!7ZZL<+E<D)BOG/!*(8J_U
M_1.=!C\A(G9<+.^*MSD%K)GI,^?*_'V5^2_FROP'5IG_S94I7QIY44[5Q&>"
MDV$1TBME_! IAO3E7/+H41.02?U1SX*I862?O=7*3I9"X;+P2@CO#&/*U'W%
MI&/N:/"$L2++F179!4^P(A33<%9W,)J0/"3C[%R+)TS3J)L3OUP?^XK!N.1(
M#N3E,N$6\$-*VB7$]Q]$$'".NP-?/*\YOI@84W)X' %.QO>6ZPAD"IT;H[X>
MM.V[N,P)]&3$\<MP;*4/32(I\5-L-YQFG>,T6M8_[2; -W1?U/74(A)%00G7
M:VO@I'\4R.)XWMB;0]V(;B6XR;>E)E^<"I^H(E$=)#"=C#A ?OPT((%7;W)
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
M@L,)0E\3<A?TRVA="44(2Q\U)2\[0W?3^=ZX3(;8IWPMKL.&$-*N0FL2P9L
M##(IFB%%]<UXP0M'C<X(#X%6ZT<^^XD1+4X-Z5RKF/+YLVWA=H-P)71[[^2I
MA8\G>_S/=AO=R["-AN*J51^X*Z/OER[CI>E(Y:H;PB]=;M1\NGVKYP*5U<E=
M+ :G'L-\- $W 9BT:"]Q\M$VKL8D0(-BVV/T/;X[Y1,/U\IX04S30.10-W@N
MW_!/+QRL/&N>B;_"]RXYQ!B3V1ECCBZ\J>66P0;E5I ]EQX&B4:!(3\NO@[D
M5F1&[CMRV!&\/!=OY:+O::6),%BT6[B&C(3LAS0,]G3IF<PM8[ )F5T+*KD6
MA$NY%J4[N(4DSBVR['K"(&6X'W[0A^W30P. 2QEWSHH,>"'M)&7MA*_58;?F
M>9:WH7J8-OW@G@DX1+#\O0C*<4.+8@6S:_$SR:W[,<4:!85:<R&MA#/FB&+J
M?A8&MSZ!M5%8I#./R=B$0TF=%(XT6S!D'1H)K1@H1!"/T^HPX_5^R^4<8RS9
MY.[KXCZ)S[$7X7#=^68RSV/@:TFU;^!UN2!SZ)I..&3<>)95N+1Q(J'JV-W@
M9W !;2<N0Z=5&@+8OMU3I20&J[W2=,67*>.AWUE;WKV7>XP&.:\G-D=C\A38
MCN=[2[4X5KW7[[ES3;,UO$ *-07W65!!"J-GSW&9\33N$_$8.VWU/=1H57/B
M#(> 4L-4RK)25-G9FT=;W_<2L*EV\J2QY'R;&,NXQ=JKP-R7%S;,O'0GAXR5
MENX:LOZZVIC-\3$=3952]QCK6_93FS_]^:DWT,>',IA'E5(95SKVABAZ+::+
MO*A:1J72>@A]%J/FZ0OI5[DG)Q-U=Z*-ORL#<$*S5.@9IWNE>*X>_N3<Q+"M
M1-Q($ X_Y<FYOBPAU=V@M[D4.Y=B4RGVT[D4.Y=B?_'(7GPVYV2ZWBVR>[NR
MWR=KMDF8* <"0O+DD0(-?S3 3D+K" TB>:2$@*IV6J02=L#P=E71_Q[V?)X
MX<7 66I0BE'D5D=Y$^08]9@K.>KEGT/NV7%7"C*9[9I]05($92&#G&KC%HP$
MCB?M-BBXEVM!J=$#?( M$8ISBCZE8>AX%642*0-0"6"0?=0+4TJ\)>9CI!4S
M(!=G7.)!;3PD#A7EPEY'8X8!_B-JE$ _C3)Z)O6AJIC^UTS_RU!MYFG[QJB
MD\SX#P1K7[S2J?A85KX)IIPO?D2')7D.5'Y[*V#P8C"NE"-)H3U X:ZB?GKF
M74^ZI**-;S.MM!'A(A)JW/%S^M*2M&8N&%E2#H,Z25<AE0V66(D[CXK\O>NP
M5ZX[U6M9<#5P%8133J)VVRU,$VUO(JY6'6Z._LG9OTI/#KX4!.9;<K)51<7P
MB/'IR[?HGW BM%SKDJ)W-'&%I!/@IB$+K@2#Z/<O3"96RT4BY2=[4>GBQ7NW
M/LW-:-R'3V_;#D_40#P@W(#W109+-8C75>XO<JK<R7H,<#'>XDQ(_:5$NSS=
M-+-@ C 3%-(?#C3N!^LT&'7-/;SKXW21@_\JX<AUM>LGR,'/%\\I_4& !S0,
M>BG;C9:SM=S.IN$CK3XFY(#8C8+L[P%-@OS&V";_<_&Z$ N:1R7T]Y2"IG_1
MWZ^(A(9EFG>XY<>(& B1M*7^$/N)]650->H GG/*IPD\E).#2IH<38:PN0[>
M4..B@L"^>%RAJ&!>BB0/.<'IV0Z@%+4U!$ESIN_CZ,>4VPK)E7SK-,)4C >N
MN Q!^*)&+(_+4&0)KK:Y:KFI"64AX=#7(X'3;%9:!-619'O]9.?86QD#XR[6
M=,(4 B@.C3XB_OW!B$8^1D?U,N6HK N<IY>6,=?U9:VVASV!X'M9C";!2FQ)
M59/L E!$@,M;KIK7"W4UI=3'N]FK=ZD@_H9]8BH.B1&:F*[)U/8-&M.4W& X
M[.SR>'V\C8)!+-7]'Z?3)_'=MF=U-)-G@>$4>+\X=;_3T9#QHUA4)R-+GPRF
M8C)/$BU7M_\*@WY&=^S_@YHVB+YX-#UIX.1FO_1\G0Z0/SG_]-//OWSZY=-/
M/WOZY$^??/EY>O,*W,MG&( [WIC"ZNC._<GB:I=TX'L\??)D>-5?<SFZ##>?
M$_4ALP,$0.@Z\7!*KMVQ-VC.3LH9Y(F8>9'-BXP767B[JZQ$A1.I+G?,(,V.
M*7GS9;?B)D1'98U5%WUL<N_)99N7VKS4'K[4F&,;B:1_F5&C)KPD>X.J+PFQ
M'V/$=DL\*?,2FY?8W4N,;))%?1N(EH2SI8B0;@GWB<4V+Z1Y(=WC>SFQZ'5
M^5_@!8S;&7":E*L8KG-J;;92\^*Z_R L&R$IEF;W+/D]KZ!Y!=V]@AR01//[
M+%S7J-JV8T>TUA@GN25)2LL#I=S2/G1"N;Z(OA=%H$A"?D6_F]?EO"X?G+*@
MLLL492NSU0'PQ;):5;,B)6>%764J;<BJI<)!SP3T[>9\<6(M/I8\Y2G$V!#'
M#I2RSH5'V":8F%7F'4X,N27[L:')0MD1P/GNUM<%S6PMQ7K[!3U7%W;EOJL\
M;6O^2\E><\Y:>4SV!,O4MC R4MI=I]?VB$8#CHXSN.^<&Y^[:#S6)J>3[*4$
M071S,BWWA>\_I<)*:,4PW35VNG+W<TI=O] P/D:5A0O,B^KM?<*">Y\*CB;A
M3^Y;-D(?U+5OE;+Q]Y]^?OYYDD>C;D5=FNUFT\?K216'*V5%4F@>7.>S\R_L
M,JB:(D4%@(56956*9QGBR#:L(QJ78T^(CV=//OFBH+8K0J!P+HL:*I7:ED5
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
M&]112W&\J+I"I.V4G7ZT)S#-Q<66 =4T9-^C*RW^XY*B>$IA,L;S1;-JN^C
M.T;04[_\\Q$LCG0/$6R_8; Y3YRZOJ(XGN8W%5"MFRMS<[4PXB[H)AC]N]5^
MT+++FFE^J>PU,."#JY4 GQ:79'OU18/4(OJ)&TNWPRS%\I.LXR/@->7P$7V.
MD/[#JHC[B6+CEJC<XMI.*Q YK_AF5U>4 Z2HL0OAC+B8%M%(;F=^YWF]W;/>
MI ?T7]I;8/G/N,ZD>+^LR^9-M+)A]49K]_&^0MDFJ4OM YY8HY(41SK8TRF(
MT)RD]:G19A\-*K*HG#"6'IAX64I=N'.<"IW;^);SXIX7]WW&]+I:5DR&>-AJ
M4\Y-J_!+=!4XU5Q;M?/:FM?60P]J&+^;<E4RY8F25(XMH134-E5=HX&U/C(5
MY;;\![7A'_-OQ[4)2$I++FD0^L9HK*EL""0.2!/+Q3\/;7?8S@MV7K /-X8N
MLE'@5%R)MW$1$NB,HF+ZS;RDYB5UYY("/Y)ZCG'6H6Q/)30@YZB9%5WF! (.
M8<]T_ILLK)[%/N9U=O\Z8THD%'?6-XA.FE:23.*X>8-&(/3&28!$P[=K^[)V
MH,;'I^0QRD2AH:8[</-MEE C(D>.L'IETQAFPKK E'4HSV]C4":*\UW'S'*I
M%_RH[=,/2['IA0?-#&-GRLK1?2(SJ!EE$ U#6S5FET[V14Q@O-WXQ*\K%^*S
M)Y\H4, 2S7^1]HE+2_K]K;S%H.HYNZ@)*9R](?5 ,&,"$01TTA_4WH(B_^EG
M_\<7\@&R=D&Q!"T"0P$8:AMHA5TM&&F^K!I3>S_TFCX2=3G"6[<802"GZ$L$
M.Q">O#XDR9/Q4&L:,T'SLX0F ]U<0K?3A.XJ3P57DZG@Y=&T>QB8-I'+=VF
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
M?X<=T6G8;9L6O!XWZPKFU:PKH"6O#83-#WZ;.@&S5!:Y=%F^;'P(PY)ZZ%
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
M[G@[/]U.]+5 )#,M._[.>9V\9N>Q[["W37:=0NRSX4!\1K/4L8_!P^V,W8_
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
MMYD4S <8V'ASW@Y@K-_T=>EC+J?S)[O'\Z?^\Z-GP?_ IR3@V6I7SCUN@?\
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
M0[_&"7C9A5+BG>R_Q"#!*^$FQ1ZIX*<#@?EM:1[5DV9 I]7XBB[!1A.[Z??
M[.#FMSB"RU^8@P-JG=![RV6YSK\PRP&.7#\&26;08ZAU]V-$?8,I19@=XE(;
M9WW;\0[4]#[D62CER=7T[%FN5\Y+U5';D<JKT ;H:M*C-]G?$(=7 *)MMYMJ
MQ<].W],Q]S?95&H>&-%+6#&O=.M6>@MK'IE4\E(AX>ILUY19W)F,8?-Q-9X(
M[9R]*^7)= TI>";(CF<^@Y&42'T2!E$Y?ZO,::V?GZ9Y#?R<AUO8M*=GH HT
MJ#@'$)I H&4:"L,ONLP%)ZH >$NX'.E"0:PN!)1T3/DWT<=XMY!(!4I3F>D1
M>QG<46DA\&JR;)N?,WP\ESH6!/(?.V:: < .IS-B?$@.V;AU'DN;)Z=YZ!YR
MU+X.,3^_9DKWESEN%L3]YC&,F-HEI(7E6@H0C5A_=8],(/FF.4*PO.WX:\ -
M52G@?4VR8/TS8X0+BA^@!>8A3NK;3D"D*;W 4A3<CL)+-VJC9]<*U#/MV*KW
M@#<_-S\3::.)F!F"!\N;Z=K]!%Z9FCBF=CGFC01&9S(&P&_-R+5<\ZQL^/>"
M7G9A8R+N(93&4UOXAKP((X4/DF00J)1D>,F2)=HXO?K1G$IX&<0QU]W%%:TG
M%=WQV7GQ-[M-G^S;2A*O\+Q7"4'#^,0Z]S^GZ-?GT%SL*Z5E29@]INO@L<.*
M. \E FSV^_&C+[/&_$:K:O-SAHU+)A7HAHII938IF]V/:,KB5?;V\&;%5-8
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
M?64D#T-FL"S72'6%:%^("39I;W;S+89D7RPM V9*R2U2]H_6873$V)]%CHE
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
MN-WCBEY>1NY^^K)'3A(.#G1I9.0DO<5%5,J[*W:+5QEQ[-5DM^0S9+$21N*
MS^/$W[!D42VXGLI #HLC?)NO27A<%Q:C=U/WU'*=+5G ++ 0MAD7UB0VDW4(
M G?)!+\REDNV4TG(+/K5@N.*28MWN_O8C7RV^31<C/["NDXX@XXQ'W9("2?'
M.LZ'%7G>*$LYT;ZP2+&@/KB8GTWES<F,\$Z"8Q/J-M%#$'R=)H3Q(QG#[PGZ
M*+)0&&IH3J6FF<]7+HBLLB]6#HN%VKL# CNI9%=Y\:8';5_93TM1THA:E/2D
M,DSOBWL_$->%3&*X9 ;!M>^HI%Z9HD;?7BUEGGY'7T5/5/K0OCC#/)E1(%ST
M<S-(8K9@EJ8Y-65HR6\34QTIIPURH>7G('V<LJ"0JO@ ]X<V)"0&F]9)U;Y<
M(#7_E@HD<EP'=C:>877I7?4,/I-H$>+,U2A;18#69E9,M@G#@%PWDE(?S")N
MGA.Y0OJFDQQ9,G_7HI9(5>)LAX_7=-I9?1U*JA>R'E4GL0/4YL]7Y@VKQ)[9
M(Y4L#H646(\\H0[ZG/\LY 3VXPV3X,(UJQ&%\;_'@.<J!#O(656I?2R'DK"Y
MV@H%$SX)U3SR[Z#<%MLP]-M=E#RB-27F$%Z*:AT2(LIYBQ='^_8[=/[BDIV'
M(0N9$O W[ 9P@@ LH3P]-D;/CSA0W\L/P1\5,5Q_62A(TH_UK+,UO8("%[S$
MVU"$;7N0S?R.S@QA:$S;;10Z[N.W@ZLK(M(RAL!+_PFN/P/A<X(F2HG.A0U2
MR8'5XADKVK"?,U@5G !24QTRL3C68A'3/$01E4AEE0MSF&-@>0L#=HS3%U^)
ME,7RE==X<(W5 NO2LB1ZXBFV>5;A-$WKB5A#%X/=*DKT[3]^NE_Y">FE:#$"
MP.''3^_NOY75_P:+=#0Q?#+*R!O2@Y-3)XKV]-H[S.VC8TM7I0LOH J#[$9"
MO]D!FAZ$Y[)D[WQ9@5ER1KHOY."GII3<EFOFRGD,B4?GWTAL>P:+0*?^[\A:
MV+M^B5\P*5A"J+B[7FE[ZEKG5"4$"J,["V;RXHE%/GJ[DH775<1ZX#CC,Z97
M<N0'L>_V/GV.%8J=+VFFWG8!C1/RH<A@H E'A \X:27NT;Y!/FJ8NDM=C=+.
MX7B+8PQH-_0B.,-/F(1;&*H!U&A)F-T"&FG+P-%F^<LD.FK\>2GI63%$VJV5
M+?1&$=FP"E?."U3WAKN4B@E0![ST1#"1YP+F'ED"A]FA$N<%/:>=4[4O4-!J
MK"B(JO,DJQ9!J=EWW]S>??GFV]G/5"G4)WU7Z:1H_2S*S[?T"!S4O"D*I-(W
M@$4I"3>-"20:O<)VR"*@!O;!&>>GJEYX.&2]<.-<D"P#Q[+@>5I;P49\BTF.
M<M;RRHTVO+UX$T:)_[NHA"%]G:P2 @-LB&,03GJ)E%H/$KZ2G:R>=*S&K.Z"
MFW8W3Z9)";_TAE#^8UY>XM0>FWWEYBP4K0&D?J81*_WA8>)0O>9F(1-N*-)I
MIPY4;([[ 52E(JBPE7H(I[3SD/@>&[=!E)0;JN*Y_I;PZB697N;$DC3VZ23'
M!+J!H%'\KQWH0T_"H]6KBEM*#S&"S+]EK7C;2E0/2*L"4LE[N;Z0OF<M7!_&
M%9=_U;\"GZ*J)PB\9N9)#=^#KSZ3/'\BX3TDHQ%,A:33,-J&O*)$?YV 4T:"
M--)HSX@ATL2+'?W +%,Y#:&:N<%5!*'HJ$1">N52\7T#<" I0+?*LO0W[,V\
M@TJW:X?AA?([NE>:JE3TL);]>(]U$'P6G1.I9,=M.D@MUHB*#G;@\,>:,Y*9
MKH66_:F-((/OKO))^2B8XTH;Q\(2G";<K;[G.]$>U"3AFNM=(MKA;G%&;#8<
MD)+!6\+'OL8)>&AOHO#)][!WLO\20WHB!TR".H5T3SSQ &\38;O@#%Z3\#GF
M;Z\ONT&.ZF?P.-[A61;K"8G C&/9%2@[[Z WROBW2'6(TAXM9HI(2S(KM"$M
MX"S1<!,&; OVLZZKX%>P_*0V]CB/9#(C/BO*8/&2(*J@!%/H&']63J&K,'B
MY'Y90B-%73W9G]+U> BC_7(-P?ZRA=>_/ $GRX+#*&&D*+\29DD3GP.?SDRZ
M_.R\^)O=9KG% :_KFNXQJNW(3'.Z+O04Z;6<HB,(P Y$(=S\"XMY+(LONYLO
MXR3+,W0BRN9J[S#C627%SY[GG&9QP'H/"R%VO0-]B0I0K$6LZG/WA ZA-($7
MWF_,?;?#._-,,4,R?"S7HE1Z#+\.G)AFE(_<YJM;E\$56P[+LG)>TN1<(^9<
M ?=""0]?;]HD#R0__ PHO2V@AV40^ULS>&#!W>7-L&=5C\&*V6:#M 2X=OA@
M,^AV,.)AD21Z.JV6NR1.G !"4UJ"?)E09QNAU-[FK. /1 W^P),]TMME_('2
M'8BTH7?!/[.57#N?E<F#KK"99P![#!9;K9"3]=C&6CN9PLF0N92K/]16J%"H
M-#7:NMH*T3=K,^S9G1:)%N%S-TZ4["_""$PQ04(U/:G@@==)AUGJY>O5<EQ]
MV1%*Q6T( 8IX7W0^AE8T[,U!WDR2A$B00ZQ/-B&J5Z5;\PF1+4]?T83D0\"T
MB9'KOU43TVJG#"XP7_D!V,HB[/G)A>.R_/$K$Q6A@ AH,IPTDK0M0U,89(YH
M?(7C\G7W&$8)W IG^)[%0/3VJ@#!(W:# LF%G31?$UR0&@8L>5B8$3BUYGAG
MNXB[!_W0ZYV]<SN>7=T<7Z7N@U?!63Y7$/QZ&F'$*:N0-BL)/]GSKG]T4.ZD
MF\/P2>G(K<5U75#9-\%7_A.X';-I_->XNT*:29_.)D@7,O?GQ1J/W#@/Y)G
MJ1\Q\D7>%H# L$#G7.D09<#GR/!=0J7 +BR?X <_"&;+=0:2@57;]E-&[13>
M-LL0:;UV@T,(4VE'@$- /,.3XQ, ZX T,8=@!MQQ:$XUI8Q2T@NDB!]1]>6(
MQ;)P9)!1Y'@-[J[/=CP)HTC 3#E;2IK>$EY*>6:,U:LH&8A "]&]'KYV-B;@
MG!DM% "QJ0^;Z"-F="R64L^I4_TEOVFHA?T"_,L50TN"(,LJ/';=:(>](KID
MO\RKY9#YGL,P0+21(T$5E8%D#HD]<JX7VA4_X,3\U*N:1:[>KO@%L:-X]1S.
M@B$R+B\E,*R0&F(,T"=KG4RQ@EF! *V7__O?_O+IXY__7Q$>-%=N23FCHV 6
MW4@U[\Q)^@%G2YP? ?!S#F@6 ^+H&V."C#/^AHAHD?^D1T0/$PFM.M(BH>?+
MLVZ0 <89K-N[G61VJTW!6C'N6&/\F)[?'M1:I&IIJK\)P%SO(H),ILUVEXA<
M^7PI2 [SVQ-E(TPPJTQ*J#HEAL)]RB(O0(0?;BF/KW,^,O[ATME0(T%8#(5/
M#16.F&M># @4.4]4S@SH9H.RH6G5T%<Y=^),T?O6#!$2^EE,UVEVJHK51ZD
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
M8J&^\;[NV=-UHX:Z%G';PA9JP!"#R8?<6.!BS"QS+=?[',R:,;[%&\>'<NT
MP2R!/(9(.X?)VF*WF(:O1L"1FA7ZQRN<I^S93A6V[U$DZ0YI;?A,6=WL-OV=
M-H+09,=*,L.TYI&!J$%1>-A ,2U&C%=7GOS 27',UF;]?+,EX1[+VH 5MP\A
MH2NR0U(5CQ_5+*SFBLI7EPG>] .7$T-1Q12Y!:[LEE'C =!A3>D4Y2+8F-"O
M,"K$AO7:I['D6BXMKBW.8:Z "RE;MV-:F3.F%&AP(TS^=U@FT$D8[.)^)8)U
M'),DI8SN.>GY,$6*_&A$T<G<^,DIKPWK-'@@O%'O(*^[HU6NZ75WC55;:%I3
M,K"K5$[RN;WY/;AL(:]"G88RQ:QVP.K1"802=0U)RC%5"W*ZWD^4='+F)/C"
M\:-?'++KK/!MV>UTESA14J4TLTZ.H!<$W2#6CZX[G^ '/X#P'GJ7$XC%?9OH
MJHD^#[R#I_F<U89\FV,;53DY$UIT88QX/8^$\I&:-A0K)08-Q@[*K:?=B.9<
MDDB)QMY+$M/(@5FB.=_#<D"W>?;%!BLXT&\EJ[0O:<GA<K_OTKO,V[DVD0,-
M!D3I7X@(+_JF=*HN4(6UR</%MIS:USDUY1&_;Q-C-YHN QRHYO_&SORG/K!X
M%0)+@0NE7W&2%H];A2#,WD3AD^]A[V1/SQCO,E!GT#$]6Y[X;/>L8) .!<*
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
M,7W5\^7@;]YC[AL_47BMT9^G)_06>&^D"D\-COZ)_\7"GR8^D$$A\B3 C%X
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
MHB;D-R1(#9-, 0'6-GE]]:AB8'F7ED?2^K<'A.)*7(K8LJXQWSS#2(UTQ E
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
M@"AS6S%_#&7R734A&;\T18>VG,-&M)I &7K0-A=T7@H$'[AGU"B\%[HG11-
M@%24CB;UIXB&PQ4960-A@$#$F_(9K)7YYMMI99- @%:G'+X6RQH' @!!=C*6
MSYF!(<(9(( B-Z LW-8LZ<9OZB"?!@(\%M.J!%>H\KG*%!!@[4++0:3RL*!H
M6G,,B(VW.*_ EL<>"@*,M(8_Z3:!G':0"PL:\0SCGM):1E+V+W(1OF]Z2KD#
M09Q+-5K,=_1<VJISC9]5[JQ.'_@;WR%U"'@>[=H@$&?$L645?6)+6Y:&)8PQ
M&P2P%_BZ."37!,L Y7MY\V%[B9/6$"4Z6!)GGKEFKLK%D<1=,3UZ0RQL7A^K
MZ)*/6&BUW5?:QNVK3WJF%+:?*U(O(J2NY[3B6%O7[[8.#!IQ?DFR1C>[ +-4
MFKML>8]TYU?6JQM;'CN-Y0FEN<YYM8WTLE<*9/!K]X[\31"(+4Q766#&)?+1
MWF5>)\Y0X[R>"'&8IK>GXW/@-7E\[4<0&&?$>0O]&J+Q( !JA)97C&1"6XG"
M-!#@59L=\XPES3$@-MX6S[B&D=HH\R_>UL5\<N_:EA]7:AN0P O\?LMZ]^E,
MAG%.HZ7(%36DGD9J4]-I!R"03E(VRQHAIZPKHD+@LM)$$" *BNAQ0[YD<T
MQFH"\K3]*NSPSI\  B0L6X5I4E/Z[SM?(6-,.LD\)Z_="A*?0)4+8N)]".*V
M5U@\',1)Y=DCK /)?P.QT=&J#+(@'^UC(%!9IA,IP7GA>5DE/Q+64"_.2)V;
MBKE+ W\,!"IS#J6A=TJF@ !K_#ZL%UEY:C1^3DKGS8 X"II?*M2HZR- ;/HK
MB=Z[B6+WB)'*E,SJ(\R_[+P$"<SD&2X>Q2D@SJ(A1%V>*C=',2!,<PD08+>:
M"67E)JP7Q(RF%HTW3Y[;Y'BT2$3H-GE]]2CBL;!A18=;+WB_\VG<=Z5RRBY(
MF0(_M7BX54&<]CW#@W]'C--IA66\>^:A*TP# 5XI1%VV:YY&^#Z6?^+&;^BN
M8=P0GF>(WWS8!\)M2&!#TQ[.&F/^MEY:'LG"V!X0BHG,$O@T&YP7G2D>#H(
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
MHA&F;5*MDAG':+EHA(F])PUNWN#XJT",T!Q<#\7B&U]7@:FNAMLJ$C5MH:O
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
M;;\5?_# N]J]![M#D$26[VS=CQ\2W\&<YH=?A9N3SH$AF:@\16SI9"".OY*
M"Q76S\:S*H<= Y$>( QV?7-J=5]X;'SIR%-^  H?IX 3K^S*<MY\&5TUT+MT
M"AOI>E8>HS$,\9 PJ']'Y7+)6IP7W(HE%X[CIF!6XC*N46RY'@2C013&%?D=
M_ZF4W?$??GX, R>QXTV86809.@=WV+#*AMI&23),MH>(J5B(QYJLI5E6.DCK
M'%PBWSX<K?";0,^33@,$4+XOH;XGG08'H!W^F!XLE1G&P,AHO[4WIAZI.&E@
M97>#_Y$_17SUEC$*9 DDOC>7/P4.D5^>"-'J<:!BAC$PUEEQ2V;!ETX;^!X_
M).16;O;;( EM4LXG^R#K-G/'FK,P6QZ*LEU@%53(']EC1V"+3RARJ:W+\L2<
ML3T0#D]Y1"'Y"^NE[+ H8RK5*2-1Z16IPQBZF/:2F.!N=[!(1A)"6.3>(;_<
M@1(==UAM++@RMA61+=SYCOOF.HGE>:=\.]_]20TBG75,$EN+81>AW-GN2KLQ
MG_QT%C&KO,NT-**K2Q2D501NJFI8C5+3$B5FG:AKJSY5K,E4C$7C3,D64=C/
M6*K.HM&CHS$U.%>#NZT"30KZF)!?52_J*A V4OG6E6!/5;$L^!=?Q5L%OE2-
MG#6_.ENO7#2^]!]%AJ*[BF15U7=17:I=,]J8C$O-+K%FM.E06RF.++ID6N\7
MLHMY:<T8Y=*@_ 16T<JH.R%JV0//N.2_'EJ&QNF:1P&-@RE*EF1_KB =.9<Y
MRE)%XAP>LZSP&&X]J>?(#EU*_96/9:3 =W IS8/FG9U?,,#9BZYQ5O>]O>AC
MG]>=GY57)#D2^'_.SOKH=G;,E0;F#1D3PM>;5FF6\@3A>##6C[.'KK=U2.W1
M6$F&P-F-<O8*@%2/.KU%B\:F'I<3/W]3EBN&1WC]34/KS49I=%1\0'GK9OR
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
M(3]A#!R8W#][P;/E[9"';%)&)WP-T@XF?$8BF0$"J56QXO)4_458)$]Y 6-
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
MI&K6DTT9V.[(_APK"$ ZW&A @Y*7AC$0R*9)B1.ALX4[?.X  /#\E$DA1"/
M+X95_@W5%=)8++$/4W>5@>]Q^K1E>HK_PD\V9P\TYVF*K9BB*-U7A4OSK[%X
MCC%0&KL1W@;VV*'+70;X<0]C%S/G1RPUN%$4A*>'(!9TFI!-,9C!GV4J;>/
M%A?,90XUQUV.6'UQ?\V"1O-\*]JM$1\_P3!A"CRFHC;97)0!7AN+GB6C$]Q:
M]MAU<7WSC]T3\DC_K4<KC$]"#L48.#![^NP%SY:W0QZR2;>&\#5(2S?QN9-D
M!@BD5@^==#DK?Q&FN"DO  )(3<KI3?8<"BJ5USL?JZQO^+/>Z0?D.>1AM?QF
MR*C:G/$>8?*.EG7H2(^2*JHDS[%DLKF'.0GM@Q7)4Q@9 X=NJV6=4J-]4$7-
M;1"2,_?Q*J=\#X179V.N@H@=7]-CM5%(B#SUF&!M](C"[<$*$3>?4G'2T+O$
M+]\):Q34_DA:J=9(E[E%\8R!]T=:NL:63[K_E.8MW_GJOUJN<^?'*,1\(<HV
M@9Q=0/'%)(VN2PW]@%K$CT)P51XV\]EDC1MA+X0IJ>V&,7*&\72P@\YT#)"%
MN5QH#IR)EUC@8.=;"IM1=FS+UDPP(/*3]T/!8J)W.JI_Q47AV-M 8T7IBB@9
MY*JDPC%[@<:$2N$@L76[+#DN,[+-'!%"JV:]J!;+0C=3Z'4?3UUK'VBT*/$)
MH>FOAA)=3CL3W(@>V;&0LYCGEV],*ABKS#P(&@-*5TC?;%@/PFZC<"8X$5V=
MH9$RCRLC#3!4#=;@(4.&2LC1EP.^TXIF8\C8&(54)%+_3&-0.U&'AL$>,EI&
M(1..7#/38-RN0C[+Y0$9!:.0 LN.---(XTYLHH^S::9!QSW8J=!Y-08Z_@H5
M'1(OV1BX^!M07'3VR(V!I+\#11+;R3<&!OX!& ,LU^(H0CI V^* >2S&$S3*
MW(P+&P,1(G+/L3!)&" M0@"S.N3G('#>7<]KG4\CQJ4]SEQ@=9$9E&]*5-F1
M-]K8]B^3".,PBBB91.F]Y<?/\48#B?IMTC@'"LDD4&>1WEYQRH=\WL!!'_],
M?&KA>D#Q>Q!^B^Y\FQ],RA\\\*YV[\'N$"01EG2V[L</B>]@MO?#K\+-2>?,
M+AQ%RDIKYB@>\YJU#5>1-5<1P66#D!&AX/]1H@(9$YTY#I39:B$$"O@;:%PH
M><,D+[[L5C0P!]F"/PIMR%^9Q:@(V^1XM,+39E\SID2;/6_")CZ@<'>P_)SM
MF-8G;@GVT+W[UMZK3,50F@I ZQ#L4TT1D2Y@LC0P;V>7I[2_O&=%H@Q6G14@
M@EEN49KWK;O*NL =*2%0TC;]B;COF,I'\]=)M_4%X^Z8'+D;J_]NL/#!&_*"
M5^3LD'WP R]X.3VY+P=)C7/9+(AT_SD,H@XL+)TV/44S&&[]-YB7S P/^&)]
MB"];[7=S!;VS[JO4@4J"EP[NJ_BBB69 O&07MIT<$^H>KBJ\^M>.MY#)'@0.
M(F^=^,!:PR">$E:Y]4^$3 ((S-<([1/OWMWSA'"EJ;.U0.HH7VRCI%RWF;\Y
MIH.2TZC2JR=-SP1CDA*T$Z)L(8'-W2T'BKAKHQXRO@2V08Y02=# T)YF"F1/
M;;P>H2C1TY:+(N$[)E?X0"-&^'HQ=<'\AM0NSTQ@9+TWJD#.HS;YR"]$ UF0
M,=&#]]>5^9D".2#O%YH-EHN>KGR?:X. G.$R#26UC1C+Q4E7\J'&$<@9,$;0
M4C6SS,3WWJB?OL$O,V8$_LL]HGDL$$-S[Q'&-:(;O$:1';JO&6J$7G39+&-6
M._;&1!YST0R#32 QE:$BJ_2>?$0<PBN: 0T,H0=8/&<YH)BO99M2?IU)5:Z
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
MJA="7;R@R?W/=]\I\/+)0:H:"ORLS/TV\&#W459]@05LC?",!%4"E8'GV"#
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
M>-G/.XQ*WA,&"E$HX%C-W 5XS ,6JR#R@C@45&ER,QO%?"@V(ND+B^I74T1
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
ML\>.')C%^>KB0 [K=9K.(?;Y]:0#\[6H[:%[ %\>=]H-U]UKM@[87K/C-GH
M1+L#;?)/3J?9Q<?MDQYK[^/#CGOH]/ K@K+9+;RL$IXBW+V.T^HZC5ZSW>JR
M1KO5<X^.H0\ ;M:\=OK9A88=MNMTX=MVBUIUH NNO4,#(9!M:@3_:W>^K5^'
MQ#5GG37<3J^YWW2[T,'IL58;(#WNN%T #.#]Z@*.#@R03@]F:;G?<$63>0"_
M70#EL].=]'3W*H!^_-#5J*&FI\TN#$?3=$\ I*G^I^V3PSV8OH>OD"1\N%]I
MWGUVV.PU#QS$2X5U7?<+HM!M[;<[#5=O>+OC'K01MT0)B(0]MK:[SIS&EU;[
M]-#=.[#+PQ>"PD/L968'M.#B+6)P^W==MX6;>=( +--</1=W]^K.[7X#]!RU
M<:,-S@$*I$08_^BD=P*THD'JTK0&UPU'[S&M$\;KNK3II1I9+352OBKJKE!]
MUG?/+S=+W<U/TVA@]$NB3.DYEC6B@9F[2=HDG92CRRC$E*42=,01S<4%EP-.
MSD$6;$V3YK215PHY]H6YO9#N!K6WZ>@3D527B*<?%+VB8/:TT2+)<,]YD^UW
M\<J\E/0_78" ZJA83(57^D+3_UM\I7F9^'WL/=I>[=QHF?@M$[\KD?B=^][8
MVG9U>_O!7J:";W!9CE  H_:TV6N!Y<_H!;+M_<K<""A&;ZGN]LK=N)@N$3,7
MX^H+P::+7O/K??V\_G7JZ@P=G,871+%!H#!/TI?0[4)A["9:9J7SC!)+*91K
M0"B^@N<-6)F&81 *Y!\@<6R] 4I+9J!\@DOA[^A)WKZI3MI[>$PB3D0]$1BG
M3H5F6Y@LYV\\VTAUS..Z;6T:02M_QN#=JFZ":0T4]3KU%[1Y^[;Z8>N&-MM;
MU=KT./"+FH7,B@Y$,+ZI24NANI9%^,4U-JVF?PKV%5<#*X36T2^OMN>Z2K4W
MU:VW,)L5983^S>KF>Y1FYYA&\WAHQ@;>S-LI8QCHAD6)5AQ]8^[P]LL9BGI
MV7=;\K[0^._+T%](Q/:FG?I</;F*JY^[WCO8 *NXMOO<V7;[R,$@3*,ZI<T>
MEU]?+(\^9RI]SFN[!0<N%*7C^CQ.F]9;6R]8;SUGNGG\M<V$.6KWN-S<N[,!
ME!C6*?&5 Y8Q'I217B>O6?<L&++/? 1_TR0K-=B3H^AYSL-S0Z+Y;$':JKW?
M?E>;_-D" !^445I\).I%5DD6\,ISWH1'H^12X#R);7K92/P!:=(+TA#$26._
M7:)U^>;=DUG;K'B$GQC:?(C,YD.%4.XA&/P3_3G(.%Z!(U52GPD./^<4R4O<
MZ9YS^,7IM5MNA1T>-IX.,NYC[<M?;4G:][>;N^/Z3ZM8?70U"K :M/>8>_/3
M31[>2\"!L4N/>,2'0BU_\:7P>4"]NMMI.WO=(Z?38P>'[5WG\$H*:\6Q4BK8
MYT3C+TO!+J^6YO_G_WE9A%)J^XFV/U8""ZLG+W8K9>&RM_=!]/VO)RTZ-<-:
M;N^TW?G2+=5]2>)/>C=+=5^J^U+=_T5UWU.")YDJW?O5V=X'4?=.YV3784[C
M7R?-;I/T?O=DM]O<:SIT.+O4_"6U/]W=+#5_J?E+S5\Z^D]=%CZ(YM]ZM[GY
M^;<RFE\2]M/>S5+)ETJ^5/*E>__"9>$R+W"I/<OK6S;ON!7_^7$Y?]/4NBF.
M?--+=2?7_1P#&> =$/F%$ \/YB*@BK<-E?>D/-X]*;-W8-S/JK?>Q.GJ.CN-
M9J_YF]OJLEVG]:7"6E5GB3>4T.MFY[V=4+]/5:#]N4AC/<SFK8X&6V4[OB/[
M0J5L'W[QQ1+?I+S CE]HR,_2S-0YH5JU5JL]/SHB*_^G^3M6XB<_54;5NWC#
M]YYY)VEI0)8&Y,LQ(#^^[DM__.EO'U^?I:/PTW\!4$L#!!0    ( &Z()EF\
M11&I.0D  %%'   /    ;V]M82UE>#,Q7S$N:'1M[5QM4]LZ%OY^?X66.W<7
M9N*0%T+;A#*30KK-SAWHA;#3_71'MN5$BVSY2G)"]M?O.9*=-T()%&A*S4P)
MMH^DH^/G.2^2FJ.1B<7Q+^1HQ&@(G^3(<"/8<>^+UZQ7ZT?[[A($]G.)(U^&
M4Z+-5+#W.S%50YZT"<V,_!N/4ZD,34PGI6'(DV&;O$UO.CNVVY"/BT;Y4\_(
MM%VKMGC2B7GBC1@?C@S<.(0;OKSQ-/\?]N%+%3+EP1WHZ2@M.HED8E"$M>NU
MU'2<(J[+CGT6T9B+:7O 8Z;)&9N0"QG3I!#TI3$R!EG#;HQ'!1\F;<$B@V-@
M\V*8R8@;YNF4!JR=*N9-%$T["V,W8.RO#@=C37AH1NV(&R\ 29;@('__M7Y8
MZQSM8]OCH_T4_H&%K*6><XH*;=S9(3Q\OQ,P^6>SUO@S8,JLS#J00JKVKS7[
MT[G;!A/WSGPIPLZ*MHL*=A6GXDY3]&Y&W.>&.+S-#+*A*>Y_ W=;(P %F%I]
MY2\Z^9/>Q:#_L7_2'?3/S\CY1W+RJ=_[2'I?>B=7@_Z_>W +GO8N'FZ81V-D
M"ZSR^>KB\JI[-B"#\Y]KXA=7O_<N2;U)O?K!+MTCW;-34F^%^=75V6GO@@P^
M]<@EP..B/^B#<._+R:?NV3][I'LR0 #5WS4/*C^7U;J7I'MZ_GG0.R4+R$$C
M65:!DT/#6+MU+SYTSWJ7WOF7WWO_*4S6J-4:+VBQIX@S7S?(K>CRW%/Z;Z8-
MCZ:/1<%C7GJ_0GJ*!^1#E5Q"TC&L$ QDH 0Q(VK:*Y/']",05.OW.Z!$[ FN
MC<<$BQF"$!1)F=HIU ZY3@6=MB/!;A;-<P@*YC,M%+$RGC94F8XUA8?=Z[9/
M-1,\8;>,-I].H]HX?/?;BULQ'[:8(T]03<].]2MSVSFN5PN3+J1RKLMZK;;:
MX8LB@8SHF!'%QIQ-6 COGVOR1P9J,R6FY()A6DID0CY*%9-ZS?N#R(B< Z8K
MI)\$51))!8T8^<NU(2P)H9M_9="X6:^ >V@<S,F$:=H\62MQ]:VX:FPMKCZ
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
M_C&#60-].,W@+,I<OD8CX'^3BC&=:)NBG1SBGY8X_>7DT/Y1BO\#4$L#!!0
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
M.!#^WE^A2Z>=9 8#AB;7VC0SE) I-YW0!CK3^RC;,M95EEU)+M!??ROY)85
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
M$=@PFBE7W9"[C<<G+<?CUO ]UBH:'-XUY<!%S/P,OR!>A@IP5.O],)7,2]6
M[8H0?=0I.QF]NB=2U3R1;15'J]RGVY=-VO "1A&YZ($M,@ [,A45NYKM1%*P
M,V,E^!?=*=2?\0 '8"HZ.4P.=QO_11>)%Q:8!TDOX@Q8YXQG\R/Y$E-2-'JD
M,A3$G"A\-W,RF:I&[044'6A"40E?DI&)XZ ^2A&3FJ([]RH:K+I?"EPG3J >
M$!NA>1(6.ANC\DWG?E3F";I3,@6>Z2(^0]\2QN3>*,\R<VU(_(\">%M0QIZK
MM,"#Y*GR["C([UT#J"EPYG &EC&IV?YR8%3!C;&BI,@K QFR!&-\X[4J!&ME
M.>4#V#52[2>82@1OFQ8@>G!X\Y7_93"8S8?YRFC,]%Q..%/Q[_AO )RS$F:"
M#:ZT'Z?HIR.O!'S0\ W5'X7RA6Y@]V%[=.?,B5#,"B8+"[."A_(@3GQIFH.<
MJR0-!Z%\./")EZ(0@>D647SNJVP<BED??S59QU9R-J46Z_02,P:]> #;MIV<
MXR9YO@[T3\TI_L>W1V>'YQ7XMVUEWW<+6[<P2@ OT\!':9E2#\0S2*7X_4 $
MP$[Z(IR*6?92<N^W2P>/2:M_F=J[%I<4,6$96<K?!<<7>J7 TBI(6LV]9M^J
MR/J*5$ZIO=:%0.60PP0ZV6V[Z74K[2;0PX%;9*0Q?)#Z,ZA];772-IM3-@VG
M[G,U:]L;@)H7)V#2#Y().P[FG;V5-TMUF+1]U$KV$3R^G.]N(,-DVDP\BY2&
M[4"%+/(L!^(!<MA?_:8FSWH;-E,X+_2!+4.5DPF9R3\*R=E\R_7[5=.I&:*4
MR/0%%'>3\3*ON3LZ"<;$AU?FUJ0Z]%OJX<'27+(R[Q8 9(RJ)AA70-%SKH,-
M]@(1+4LL&O@N@Y"2U!HX)@U@<89M2&A41%+GM8F\R(S=.9(S9R10JU>X7-X
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
M*M0O/:&,?)?-=LX#'TL1KLE$)3:SR;&!#7K'2)FMU@AZ&!BKK*>;JBUSQQF
M9X=29/G\ 0*ZH$7?E<=1(GA:N:_$_);9BJ[V:KT\&7(PGAR!J-V&NFA =[)P
M*ZQD@UIZ&TDW5CQ0FOF^,OI3V1EA&&L!IO*7#@=7;U#=]#2/^V@,/CMSCE^=
M?&>:_#DH[#9$NTU:_#H21FBAL;Y P7QG%Q(WP81HF6XVI8OID=4225N+X=K%
M2LJLDY[TCESXZQC_>LT[!(^.<?RR/;Q0^ENHC16QU_8P$'.0TO/M-MS1Z98N
M:-,#3%U/!J&52BXDA?DZ&9]6*L+<[+9U9[H,"=TGUQ!U%Z!AG1P&Q6B.W0'E
MK6DD[4P4K&DD[;SI>#%I!E,GTHDNK6O#&$0@KF$33!<525\WEK%[H6)SV&6=
M;5*-:6$1.7V16/6",1M6JUUVO,B<]]VY8S>5-$+VB]?OSUX_.6/2HIOKG"-I
M:-4VS%'0];L8@)"8#LV9BQ6=CFX1J!\UXI!;U<6V?D+:C-<I+LCCJ8:TR"J+
M-*DMZ$0=@OZ),9RF\K-FL\N-LNRWMTFEVR\@G=O#,KN4F=U+F7G=I<RT*67F
M9>H?+;,OYBT+E%?YW*V>E;M7/'V/*]</:; .T&&<A^Q&H*D,^98ZRA!9?NSV
MB3;+G*ZQU!8I99#(*"]G,S_HHO%"_A=VQ&I!E;/&5C%-JE9*]7/]2^7;]6^\
MZ56)^G@+YLN8+<NM%CW._KROMY.$NR<)3SM)V"9)^#*7^'3/PQ:)]<DQXAOG
MU^O[FZN[.^?7?UU]NKK]T75NX0T714Z/$JWH>@"?Y<"=>L@EO GLW5AG(&T^
M27WE]4JIQ>'@LEZM+J!5<?&OR"9)M&GW)L=:?^1%_W<1@W@X/CQ^W?;+GY]^
M2.PK7_Z\]<7E%-+5(^N)XJ3Z@"7)N>:Q.!=DN3!U;'X 4AJTD#Y=0'K.0YT>
M]PZ_,^V!DD(QSF0_DZ!C 6XRIX?1K$A +8Q36?NFM6X$K7P+"NZ[]^;L[7<(
MIE>YOZ3-4>_M\<F:-F^/>R>'W]<:P8=T?FI&W""<I[ @EEQ]EE_XH)DW+,Z^
M+LT.#T] @)EG!&-XB$)M@D3LB5#C!#1?5'\.#\](_&F9IY^^.06]-DLPD^';
M@/ZS;Y*GQHS0&#+_,_&:1G\"@UV&N^]G-9'8L,6; )L>_KG0IB':HH\\0LEX
M(D0;T)=G_!28:L1HQ.!V*N_+ -QW7F6OG*M4><[['J:HEB>?J]!^0=RG^O:V
M-V9+N/X([M$(K;\P:SA[+FMH$WH]@^X[BG^Q*-Q1_-=5!MJ$7L^@^(^V8BS=
M<4T%8J]L@=A;MJ]7<0+X%VVJ[67+MLV6[E;8K;!;8;?";H7="KL5=BOL5MBM
ML%MAM\)NA=T*NQ5V*^Q6V*WPI:Z0.IN(5(DX[V>1",,#3XRS;1U,OZ-#,44J
MG8]B2(5,GY-N! _*1*8N-W3G<T//GIT;^N[5(/%G/_SMW:M1'H4__#]02P$"
M% ,4    " !NB"99/Z%Y2FI@ @"-:1\ $0              @ $     ;V]M
M82TR,#(T,#<S,2YH=&U02P$"% ,4    " !NB"99#B,:DWP7 0#,_A  $0
M            @ &98 ( ;V]M82TR,#(T,#<S,2YX<V102P$"% ,4    " !N
MB"99(+/D9@P6  #BT0  #P              @ %$> , ;V]M82UE>#$P7S$N
M:'1M4$L! A0#%     @ ;H@F6;Q%$:DY"0  44<   \              ( !
M?8X# &]O;6$M97@S,5\Q+FAT;5!+ 0(4 Q0    ( &Z()EEV@9Z?& D  )M"
M   /              "  >.7 P!O;VUA+65X,S%?,BYH=&U02P$"% ,4
M" !NB"993\>=170%  #8*0  #P              @ $HH0, ;V]M82UE>#,R
M7S$N:'1M4$L! A0#%     @ ;H@F69-NK=RB!0  ;C    \
M ( !R:8# &]O;6$M97@S,E\R+FAT;5!+ 0(4 Q0    ( &Z()ED5HZ?1JAD
M %;8   .              "  9BL P!O;VUA+65X,U\Q+FAT;5!+!08
.."  ( .L!  !NQ@,    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>ooma-20240731_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:ooma="http://www.ooma.com/20240731"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="ooma-20240731.xsd" xlink:type="simple"/>
    <context id="C_811dd9c0-a330-44ef-8e5e-fca80238bd85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_8389226e-0559-4db8-bd28-1e66c1579d3d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_8516e2cc-81a9-44e6-907d-bf8b6d2d89be">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-08-01</startDate>
            <endDate>2023-10-31</endDate>
        </period>
    </context>
    <context id="C_85f605d7-f321-40fa-81df-72dcd9044696">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-07-31</instant>
        </period>
    </context>
    <context id="C_8681facc-dffb-4541-baff-6d6202549110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_8830337b-df52-4c5b-ae8c-7710f3292f5c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_88826bd9-9646-43d9-87a9-ef42835ba1bf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="C_8aa8ea4b-29fe-450c-afcc-b223ab3cf9fa">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_8c1da4ef-0cbb-42a1-8223-32033f472940">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_8e974ebe-a10f-4e85-96b3-adc88d345dcf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_95187883-d284-43d3-8633-3b7f847d82ef">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_968a6f21-78a7-4f49-b4b6-805f7283fa07">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-08</instant>
        </period>
    </context>
    <context id="C_9a4d67ed-73e6-4185-a018-64f698e71c20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_9cc79828-49a5-4afd-86f6-1aef7ef17498">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_9d72307d-87c6-4e4b-a4c1-a0f04dc8c9e5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-07-31</instant>
        </period>
    </context>
    <context id="C_9ddcc391-f797-4319-bae0-ab23cff3ccff">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_a4ccc371-2be4-4b6e-9956-a60e76834c63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="C_a78f120b-2259-42f0-9736-5cb10fb93a1b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-08</instant>
        </period>
    </context>
    <context id="C_a8b3e177-5416-4595-a8e6-ac943e6ed9da">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_aa6f2c7d-c32e-4d4f-81b0-eaef2a879d64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma: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>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="C_aab39870-5b47-4195-85f6-66d06c02badc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_ac87bc7f-9032-45e8-b4bc-030cd670bfb8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_af7882e2-ac80-4cae-8f3c-37a83dd5b2ac">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_afad6cff-d187-4932-a282-738faa2ae81b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_b35fb8e0-a38a-46b5-846a-1cdd5a49abf5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ooma:JamesAGustkeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_b4afac33-dffe-4d1b-b038-3a2fa1f251ef">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_b991c8b4-9f89-41e6-a295-3d2f682a896e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_b9df152b-327a-4710-a87a-df2a8ba0a9c6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_bada150e-1804-484b-a975-897a4e02ba88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:JunctionNetworksIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_c0bf0121-9b2a-436c-bb6a-a706f283568e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_c74b23f2-81c2-4293-bf43-153f3ecaf755">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_cb05bb13-709b-4f0c-bf23-36771a586c30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="C_cba8a689-d6e2-4222-bc0f-37c9ab83063f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-07-31</instant>
        </period>
    </context>
    <context id="C_cbe4c152-825f-4c5d-b586-12b9642ccee3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_ce482314-1107-439b-af19-432cf0ee6ecc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_d0aa6afb-5424-47d6-8c57-51f531588c3f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_d165fd73-7871-4572-b165-fa00b038d5de">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-08</startDate>
            <endDate>2021-01-08</endDate>
        </period>
    </context>
    <context id="C_d3160528-5984-4b87-aa53-c12d0fccdebf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_d3adecf1-a558-4ea3-aa8f-240f9b08a42c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="C_dd2082e5-119e-47db-a772-929ecc8d2f58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="C_de5fd78c-e442-4de0-b49a-6c842fca68f4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_e39ffed3-48ca-4219-918f-2c5d02a5e0ca">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_e73a2722-4182-45da-b428-1c7d1f66fe1f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_eb3a8f55-0cc5-46d5-8010-308801d274c0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_ee4e2f31-abed-4aa0-87bb-dab4d957ff79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_ef07da5d-6520-476b-9216-5599d8b43d8f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="C_f0479a5b-5a38-497a-80ff-7791e3784b6c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_f2435b6d-cacd-471d-bbc4-1bdba910db58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_f410d6a3-09cc-46ad-b738-d75b0bb1c6a9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_f4e3584a-fb2a-4793-99a2-add62be23141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_f60f1e40-9a6a-4872-bc38-e5d122609bf6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_fb246d1a-98c3-410d-9b4c-792f4f501248">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_fbb07a33-a422-482f-a0d2-b414ce11ac77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-08-30</instant>
        </period>
    </context>
    <context id="C_fc42afea-8932-4b6a-a619-45b81296e3ff">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_fd2bca62-627b-4224-a093-65b115769150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_fe5ff670-e4da-4744-b17f-9010efe8dd1d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_ff320936-ff72-4b90-b0ec-8cace249bfac">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-08</instant>
        </period>
    </context>
    <context id="C_001c6846-db0d-46db-8dcd-7a77b5744a83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-07-31</instant>
        </period>
    </context>
    <context id="C_077966b7-6eee-4738-a43f-66b7ae93d1ce">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-08-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-03-08</startDate>
            <endDate>2024-03-08</endDate>
        </period>
    </context>
    <context id="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_0e7d41e2-7772-441f-bea9-509c5b42325a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_0fe19e6c-342e-4acd-ad99-1c9b9e48a88b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_10d06e7e-5aec-40f0-87d2-6b340b336c67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_122fdbbd-8f22-48ea-8d14-7412d05fabe3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_147ff029-0d39-4182-b2ed-5fafbcfb721e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_148d2984-35e4-45be-a2a1-787c7f65709c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_1623ddf1-043e-4b92-92f6-72c1c7519ef9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:KeyBankCreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-08</instant>
        </period>
    </context>
    <context id="C_1a96aa66-e0e2-4fb9-9b90-e210f298731c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma: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>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_1b52bd25-4f88-4e0c-a1fd-55bc797c76b2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_1d623869-39ae-434c-8174-893d15134e5f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_1f3b2012-e409-4348-9076-efc8fa2bd15c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithCloudServiceProviderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_20fe6eb1-2de1-4cdc-a0eb-8a020cb322ec">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_213d6e40-df68-49ff-86a8-7ba47f81da89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_22a33c2c-f968-47ad-888f-413dcc946735">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ooma:ConvertiblePromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="C_26a9200f-2b97-4fce-a5c6-1c32d16a7f0f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_26af025e-1ef9-405a-b00c-86f77fa8f355">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_27014afa-2df6-436a-927d-2e223edddefd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_2946deff-e8bd-42d3-ba6b-bb0bacc433c9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_2a9ca0c3-9be9-4ba2-a355-51dbe6f30ed2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_2d5d1911-8e7c-4584-9fcc-ebe4f3316d1c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_32c9db7a-ba31-4b2f-af90-0e45725fdbb0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_334e0d35-6986-4c0e-8e89-9034cc6941a6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_34dbe02b-4fae-49e8-9343-22b04152ba7a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_35b0e141-cb2d-4dff-9f8d-bbf7907cb2e2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_38017c8d-6d39-4aa1-a96d-4f8c39224d8c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_38ebbb41-fa1a-496a-ac23-c8002747b4a0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_40f7cf8b-ac49-4aed-8619-7f0bedbd607e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_485746e9-62e4-4ee0-b53c-f6660c764c03">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2023-07-31</instant>
        </period>
    </context>
    <context id="C_521d54f0-2514-4e13-8fb7-eda813d6e631">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="C_597414ab-347e-4aac-a222-07895a42c130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithTelecommunicationsProviderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_5aa1deee-a600-4749-b6b3-af4f2aa4ead6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="C_5f347f22-26b2-4844-8e1b-763ae3f05973">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_5fbd1f80-4685-4a9d-a079-78b2e2ce8e0a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="C_619e96e0-c484-4410-8010-213587e77064">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">ooma:JamesAGustkeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_66c70309-2f8d-4db2-89ad-861454d4db11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_68320a32-ec74-4f41-b87e-f2dd9674bf3a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_69c94376-c854-411e-b064-24a5951d6e6e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_69edfdd7-0a0d-4914-9d6d-9d8ae399542c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_6bd829b0-c089-4ceb-a7bc-b19d5827cb84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_6c762824-ddef-45af-8d13-01a59896f092">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_6ca2a331-38b1-4579-9da0-21cd04af9939">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_6f112919-07fd-4967-b68e-a8cbf59c731f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_71a65c70-38e3-4287-87d9-dfeedfd7069b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:OnsipMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="C_76076364-b658-47aa-8569-630b56e80ed3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_77602efe-4a7c-492a-be74-f673570eb250">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_77cde952-5e65-4527-93b2-0ce3ff09e5da">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_780b8acc-e21f-4fbb-9417-988d2ba39f96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="C_78b87d2b-cf13-4d7a-894e-3578766e98fc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_7c0f4b33-27e5-4787-9dc5-7576e78211db">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_7cc4f3cb-dc19-4350-8d70-cdb7e5355f64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="C_7d01b726-dc78-47a4-82d5-a8dc04148e08">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_7e2e3a64-462e-4311-9552-e6aac227ba86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_7f80baaa-7364-4cc0-a255-5c65700c53d9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ooma:TwoThousandSixHundredHzIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-20</startDate>
            <endDate>2023-10-20</endDate>
        </period>
    </context>
    <unit id="U_Country">
        <measure>ooma:Country</measure>
    </unit>
    <unit id="U_UnitedStatesOfAmericaDollarsShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U_pure">
        <measure>pure</measure>
    </unit>
    <unit id="U_shares">
        <measure>shares</measure>
    </unit>
    <unit id="U_Customer">
        <measure>ooma:Customer</measure>
    </unit>
    <unit id="U_Source">
        <measure>ooma:Source</measure>
    </unit>
    <unit id="U_USD">
        <measure>iso4217:USD</measure>
    </unit>
    <dei:CurrentFiscalYearEndDate
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_1c782f9e-4bcf-4143-b235-69209e052516">--01-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCentralIndexKey
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_5cb16b3c-f89d-4d99-a4bc-693aa79ca66e">0001327688</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_e69084ea-f5af-41e8-ae4e-3b06b921f89f">false</dei:AmendmentFlag>
    <dei:DocumentFiscalPeriodFocus
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_149bf167-1939-4cd6-b02e-b3d04865452b">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_192d008e-b356-4213-8a3b-a00c8bd9f322">2025</dei:DocumentFiscalYearFocus>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      id="F_ec580fb8-a06d-43d6-a6a1-1d6a15fe6344"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      id="F_548c964a-9207-4260-8b78-a744a0f073f6"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      id="F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834">http://www.ooma.com/20240731#AccruedExpensesAndOtherCurrentLiabilities</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      id="F_cdb13912-9734-4f23-8fba-675ba3625e01">http://www.ooma.com/20240731#AccruedExpensesAndOtherCurrentLiabilities</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <dei:DocumentType
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_bad371b5-d433-4724-84d6-b89598e77c55">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_12b470f9-bc0f-428a-b94e-0e3d0ab7f3a3">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f5e8c64d-57d2-4736-a5a7-6f4c792d3ea1">2024-07-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_6265d47b-2629-416c-a245-25eef246b777">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_3b3cc1f3-f818-43b1-bb29-d52e69e02776">001-37493</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_744405ae-d7a8-4eb1-af79-e265a286cd8a">Ooma, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_910e24bb-f50e-4f85-8f37-c6a6a862e604">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_6b23def1-d74c-48d5-be41-063852dbc869">06-1713274</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_b10c6724-cb00-443a-a551-b12299db56a8">525 Almanor Avenue</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_c89b8e60-821e-4475-aaf5-f626f82d17ce">Suite 200</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_1fe8fa25-f459-43ed-8b03-d5e9c50556fe">Sunnyvale</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_ccb1fbbf-df18-4c60-be20-dead187799fd">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_850c1fb9-ddce-43be-b02c-bbef21271851">94085</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_d7550dd5-3ad2-4157-9dd3-63183818b274">650</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f954933b-aae4-46f3-8931-7cf6e74b8d40">566-6600</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f7748836-f851-44df-8359-43a10746dc2c">Common Stock, par value $0.0001</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_814f9ecf-7733-4950-af24-2fb797a0dd87">OOMA</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_d0e743ba-6764-4f81-8b6a-5bffa6fce83c">NYSE</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_8e2ed8c9-dd90-4630-8490-783db9b4ad1c">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_3515001c-3739-49e5-850d-502df8f629a1">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_5c6690cc-3bcf-4d1c-aa3e-7127bf23cbe3">Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_bacb1dff-e031-4114-8a43-d67db48fdb91">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_def94246-682f-48ef-9452-1f7c80378001">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_0f6e3f31-eb05-4c83-abc4-126c932a0daa">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="C_fbb07a33-a422-482f-a0d2-b414ce11ac77"
      decimals="-5"
      id="F_c42b78eb-e0fb-4614-8e36-e09dd7c83c6e"
      unitRef="U_shares">26800000</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_cf7a7c35-7f4a-4aea-bdab-b113871e118b"
      unitRef="U_USD">16585000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_d94c4b26-1ac1-40f2-a4e5-659a138e6ab3"
      unitRef="U_USD">17536000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6e75e4a2-bc5f-407b-a755-7838594139fd"
      unitRef="U_USD">8189000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_640c3779-c713-4299-8455-cefc53e15de8"
      unitRef="U_USD">9864000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_c1ac4c50-28b5-4198-8dcf-44a506ca2ca8"
      unitRef="U_USD">15237000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_6e10c85d-7059-4ecf-b15d-49fba9c760c3"
      unitRef="U_USD">19782000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6dc33e7d-d82a-4473-a2dc-005522105f43"
      unitRef="U_USD">15559000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_217c3cae-2ab9-4132-9c31-d2fa21a712c6"
      unitRef="U_USD">16497000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_0a36560e-871d-4fc6-b40b-299ece599320"
      unitRef="U_USD">55570000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_d24dc857-1d39-49c1-871f-0b93b74757d4"
      unitRef="U_USD">63679000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_8154cb71-a77f-42cd-9601-d765afa3537a"
      unitRef="U_USD">10957000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_a5bea0f6-366e-4d5f-ba76-bb11cbd04090"
      unitRef="U_USD">9897000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_90d6d4b3-3bb5-4535-94dd-7f54ea32e7f6"
      unitRef="U_USD">15833000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_46028ea6-c5be-4a7a-8099-2b41dcac27ed"
      unitRef="U_USD">17041000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_88c9e3ca-d88b-4abd-ae06-31bcdb0f4b7a"
      unitRef="U_USD">24997000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_3d24d26f-4e4a-406e-89d5-8cfdccc200a3"
      unitRef="U_USD">27952000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_c7fdb6ce-9334-4982-9b6a-f224e7c3d486"
      unitRef="U_USD">23069000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_bb2fb838-015a-4927-b3f9-3477ea801de1"
      unitRef="U_USD">23069000</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_9e3b6ec6-07b4-4bd8-8545-3dc2aae23d37"
      unitRef="U_USD">21044000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_87283278-2b37-4cd0-ae84-7f39f1909330"
      unitRef="U_USD">17615000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_8a7177dc-ac49-41a2-947b-c6bc47867596"
      unitRef="U_USD">151470000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_bfeee25c-f0ec-4444-9b44-1455e416b88b"
      unitRef="U_USD">159253000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6f68f620-e29b-46b0-b26a-961c851c9495"
      unitRef="U_USD">6967000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_278148ab-bc26-4eed-a708-e4206a552603"
      unitRef="U_USD">7848000</us-gaap:AccountsPayableCurrent>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_d6fe1932-58c7-4f91-8533-25941ad7b51c"
      unitRef="U_USD">24388000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_75cada70-2d2f-4c7a-a3d4-caaeb3da08bd"
      unitRef="U_USD">26586000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_993f17ee-0883-4461-a19a-de9e154503c4"
      unitRef="U_USD">17123000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_37195818-6db0-4cf2-bb5c-8cec9292587f"
      unitRef="U_USD">17041000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_7bc7ccfb-86ae-4652-9fd3-aff2abf00033"
      unitRef="U_USD">48478000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_5e825295-a6fa-4de3-b4d9-5ad1d958e664"
      unitRef="U_USD">51475000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e0ec29b4-291e-47ca-ae0c-ea6f18cb3c88"
      unitRef="U_USD">12635000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_d1bae064-da86-4e15-9304-68760b47f4b2"
      unitRef="U_USD">13676000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:LongTermDebt
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_00388785-b3f3-4fea-a216-bc57627b647b"
      unitRef="U_USD">8500000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_701421bc-e7e8-4ba3-85a4-137dd1f6bd3f"
      unitRef="U_USD">16000000</us-gaap:LongTermDebt>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_1866586c-a381-4a12-b9ba-2231aa8f437e"
      unitRef="U_USD">18000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_5e519566-1f61-44dd-9fda-afa09ad2435b"
      unitRef="U_USD">15000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_d53c8e45-c394-4bed-a85b-9ed14f0e4544"
      unitRef="U_USD">69631000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_174f415d-d856-42ad-a8b4-245aef7490ea"
      unitRef="U_USD">81166000</us-gaap:Liabilities>
    <us-gaap:CommonStockValue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_ea2c464c-02a7-4914-a10b-b8256cde1701"
      unitRef="U_USD">5000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_38680c26-7917-473a-9352-4f5b83c08b8d"
      unitRef="U_USD">5000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_af85c809-5703-428f-bedd-abdb632e017c"
      unitRef="U_USD">219388000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_9564a161-f4fb-4aed-883e-c1891e810449"
      unitRef="U_USD">211361000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_17ddf007-6f94-4b9f-bf4d-475afe35670c"
      unitRef="U_USD">-1000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_4d3bf8af-ad8a-4795-bf03-691865f5aabf"
      unitRef="U_USD">-137554000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_ef6275f1-24e4-48b3-af21-87f2d6417300"
      unitRef="U_USD">-133278000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e17aa457-67a1-4708-8ff8-813211ba2575"
      unitRef="U_USD">81839000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_1578bfa6-d8d1-454a-a0ca-944d33f33768"
      unitRef="U_USD">78087000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_63b73c98-d8bf-43ab-8adb-91c65170e9db"
      unitRef="U_USD">151470000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_fe00174c-83d3-4356-bbcc-4233594931b3"
      unitRef="U_USD">159253000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81"
      decimals="-3"
      id="F_6f87ff06-a09a-48d3-b19e-eff49f98c8dd"
      unitRef="U_USD">59566000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec"
      decimals="-3"
      id="F_356afe7a-fffa-43d8-beb5-82e3579a06c6"
      unitRef="U_USD">54726000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a"
      decimals="-3"
      id="F_083c1af7-1f9a-4ec8-bf21-9083fcca9b80"
      unitRef="U_USD">117955000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9"
      decimals="-3"
      id="F_65427742-de87-4c64-835c-54b876fb29c1"
      unitRef="U_USD">107775000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498"
      decimals="-3"
      id="F_7125035d-61cf-46d3-8aae-1dd9805606ee"
      unitRef="U_USD">4563000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032"
      decimals="-3"
      id="F_f1bc0a08-b7ee-44f7-ac47-39741fb32d4c"
      unitRef="U_USD">3627000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67"
      decimals="-3"
      id="F_516d740f-4756-4a46-bbea-c0873040dc9d"
      unitRef="U_USD">8673000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c"
      decimals="-3"
      id="F_05d50a31-ee76-4659-a7ca-7485e15b9771"
      unitRef="U_USD">7430000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_0f4294f1-5729-4a95-855e-bf42146dfe90"
      unitRef="U_USD">64129000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_537e1936-5ce8-46e3-b972-e88382f8c273"
      unitRef="U_USD">58353000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_a5e43317-b3b9-4c2b-a61d-7194c6ed6650"
      unitRef="U_USD">126628000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_32880b62-d94e-4e6f-b538-375089e5739e"
      unitRef="U_USD">115205000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81"
      decimals="-3"
      id="F_2da5b62f-09f8-44b4-bb65-21aaaf2435d7"
      unitRef="U_USD">17654000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec"
      decimals="-3"
      id="F_c6a81e99-b458-47f7-be78-317a65a366a0"
      unitRef="U_USD">15456000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a"
      decimals="-3"
      id="F_e962b682-13c6-44fa-80d5-fbb35debc33c"
      unitRef="U_USD">35114000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9"
      decimals="-3"
      id="F_cc059efe-8be5-4ed2-9951-a9690ea8dd24"
      unitRef="U_USD">30181000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498"
      decimals="-3"
      id="F_91f5c548-2b43-47b4-b362-fab108597993"
      unitRef="U_USD">7775000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032"
      decimals="-3"
      id="F_1a2e2a94-8b6c-48ee-b8ae-80a4d3503106"
      unitRef="U_USD">6309000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67"
      decimals="-3"
      id="F_483fd413-4fc7-47c9-b30d-e1e3009e36fa"
      unitRef="U_USD">14699000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c"
      decimals="-3"
      id="F_05d79176-4f15-4e1a-a111-01c7a6b90900"
      unitRef="U_USD">12484000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_b089cdf9-ba71-4ac8-a4fb-4c826e50b3a1"
      unitRef="U_USD">25429000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_6ba06f51-615f-41e2-891c-96f818da8b13"
      unitRef="U_USD">21765000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_4b829a79-4127-4a2f-bc95-20aa9e9a5878"
      unitRef="U_USD">49813000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_37ba54c5-99bd-4def-999f-f288273de037"
      unitRef="U_USD">42665000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_305c3aec-d25e-42fb-8d9c-b8eda75d0809"
      unitRef="U_USD">38700000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_4b492641-3b32-414d-86ae-061209710355"
      unitRef="U_USD">36588000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_1b600821-dbf4-48e5-89a4-3e6d482b5c7d"
      unitRef="U_USD">76815000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_7a857d57-1279-441f-82ba-f212d0ac7d73"
      unitRef="U_USD">72540000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_69a12bcd-ac4d-4e6e-9e35-beeafce12946"
      unitRef="U_USD">19256000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_0c91472f-9bec-4390-8ca4-c1ff2cbbf5df"
      unitRef="U_USD">18842000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_6061244d-96bf-491e-96ef-702cc2c25887"
      unitRef="U_USD">38737000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_28a8077d-2814-400e-a2ae-e8af9f5d8f49"
      unitRef="U_USD">36832000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_f750feb7-74af-4191-86ea-87eb5b074daf"
      unitRef="U_USD">13640000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_23161d76-9199-4890-bec8-934e8086561b"
      unitRef="U_USD">11768000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_91e8a6ed-df1b-4fa2-9ddd-0c0201aa294f"
      unitRef="U_USD">27433000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_7ddb6732-7284-4862-ac4e-09d415683b79"
      unitRef="U_USD">23721000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_81d91651-b44b-4fb2-ab41-41a612482bd7"
      unitRef="U_USD">7400000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_02b11283-3c5c-4456-940b-24a37d4e72f7"
      unitRef="U_USD">5972000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_c46d33c9-e70c-4ccd-809f-c9b2b83d2aa8"
      unitRef="U_USD">14978000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_2ed3c98c-6b28-4475-b748-f4c24bf765b3"
      unitRef="U_USD">12589000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_171daf68-753a-42d9-8de9-0a9b95512a8d"
      unitRef="U_USD">40296000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_8cd25c5a-a328-4382-af57-3867a6cd70bd"
      unitRef="U_USD">36582000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_dd3b0109-0a1d-437f-a3c5-7b46937c5047"
      unitRef="U_USD">81148000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_371f80e8-9a47-4fec-9960-6e02324f1806"
      unitRef="U_USD">73142000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_aed36c2d-6ec4-416e-92dc-b9fe97c46ce1"
      unitRef="U_USD">-1596000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_4c9c5376-ec06-4a3b-9e0d-e513fb37024a"
      unitRef="U_USD">6000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_3d93a0c1-221f-42f8-9022-e457ed62d8d4"
      unitRef="U_USD">-4333000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_5b2a3c84-f66e-4c90-b8dc-45f6e9fd7f30"
      unitRef="U_USD">-602000</us-gaap:OperatingIncomeLoss>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_8dcca560-8909-4782-a7b9-8d22095fbbdd"
      unitRef="U_USD">-103000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_28698f1c-d691-4dc0-8e9c-f9cdd0e709c5"
      unitRef="U_USD">532000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_0060f2fe-77d4-41c9-9d0c-dbd8fb66f98c"
      unitRef="U_USD">820000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_ea2917d2-1f4c-47cc-917f-523feb7b7fe1"
      unitRef="U_USD">947000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_f2f5a713-1e63-4f2f-b0ad-97e6ab73c595"
      unitRef="U_USD">-1699000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_c07a6511-e427-4fb0-8b31-6830cefa94d7"
      unitRef="U_USD">538000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_9e0c8f2c-1283-4d54-85bb-314705538511"
      unitRef="U_USD">-3513000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_cd1eaa9b-d17d-4dcb-9898-d84a0527e42b"
      unitRef="U_USD">345000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_93664862-3f3f-49e6-9c3a-540b2c246fb8"
      unitRef="U_USD">438000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_b3ad1505-fa7c-4398-8e94-6887a1069ebb"
      unitRef="U_USD">267000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_b4dde733-c70d-4957-8546-d7200cd9474c"
      unitRef="U_USD">763000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_f2e692b4-062d-45a5-9e49-c6219f6a7ef7"
      unitRef="U_USD">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_ede23f70-ab9e-4dad-8e7f-de3ea32b5654"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_ffaa0ae4-1393-46fb-91cb-adc3c0b30950"
      unitRef="U_USD">271000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_a2499c91-3651-4953-8f62-d71698018950"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_3283effc-9060-4f50-8f9d-0ffc34bc8cd0"
      unitRef="U_USD">-55000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="2"
      id="F_818ef1ba-5461-4098-809b-1ef4243419f8"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="2"
      id="F_c88d4fad-c518-4aa4-82e4-98c899076883"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="2"
      id="F_c4e14dfd-f1fc-41a2-bc42-1da14b314483"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="2"
      id="F_9c289c00-2712-430e-99f7-d0305b957bb4"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_eaa62782-5ed5-4195-bcad-c4d493dbf722"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_c165537e-6e22-4514-85a5-9fcd096d3509"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="2"
      id="F_171cd7aa-a318-4c4d-8b01-2f5926e7f71b"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="2"
      id="F_2be68d49-1fa2-4e5e-8d8c-4501ac8fb681"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="0"
      id="F_e7ae0a3f-52c8-4619-9740-babf1106ceb1"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="0"
      id="F_fd965945-e5e4-4274-a323-2c4340b2c465"
      unitRef="U_shares">25330545</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="0"
      id="F_c14cd365-9533-4114-b37d-40df40a6e529"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="0"
      id="F_8593d20e-8ae1-4a2f-abc4-d9338c54433b"
      unitRef="U_shares">25327255</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="0"
      id="F_134a638f-e0cd-4dfa-a6b6-1eff829fca22"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="0"
      id="F_f6e45a4e-a314-4d03-89d1-de60fb8963ed"
      unitRef="U_shares">25935018</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="0"
      id="F_1158d501-efd7-4136-9a6c-540262516d50"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="0"
      id="F_ac2dfea2-7719-4efa-a60e-e84ad578d7c4"
      unitRef="U_shares">25327255</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_a55ed346-74f8-4119-8a8f-d774109b9716"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_a467b746-b428-40da-a27e-65f606dfa679"
      unitRef="U_USD">-55000</us-gaap:NetIncomeLoss>
    <us-gaap:ShareBasedCompensation
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_5ad31ed0-8af1-4408-8b4f-93e643c8b2d3"
      unitRef="U_USD">8958000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_1687f6ff-7797-4a8c-831e-0e8e7b2d7a1b"
      unitRef="U_USD">7124000</us-gaap:ShareBasedCompensation>
    <us-gaap:DepreciationAmortizationAndAccretionNet
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_73151296-34b0-4d2a-ad25-8273c43f2394"
      unitRef="U_USD">2073000</us-gaap:DepreciationAmortizationAndAccretionNet>
    <us-gaap:DepreciationAmortizationAndAccretionNet
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_710a8d3b-88db-42da-b748-12b0e3d73626"
      unitRef="U_USD">2188000</us-gaap:DepreciationAmortizationAndAccretionNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_5a80b703-9034-4187-9357-99bfa33ceae6"
      unitRef="U_USD">2955000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_bb3bb106-7488-454e-8bf5-0d7eddc7d07b"
      unitRef="U_USD">1433000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_9a768a62-7e51-458f-90d8-693f4e41fcec"
      unitRef="U_USD">1517000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_602215fa-c510-44f0-8484-b6cce00c16ce"
      unitRef="U_USD">1460000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <ooma:GainOnNoteConversion
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_ca03f45a-4109-4c90-adef-a75e30dc7190"
      unitRef="U_USD">980000</ooma:GainOnNoteConversion>
    <ooma:FacilitiesConsolidationGainCharges
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_be2e9191-47f6-42e0-a00d-6188d2f5d030"
      unitRef="U_USD">956000</ooma:FacilitiesConsolidationGainCharges>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_d85746b7-00b1-4ae6-95fe-a7fa9e242099"
      unitRef="U_USD">108000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_61b5d83c-3b2e-4b9e-875b-e578454fd11f"
      unitRef="U_USD">-4000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_931c0b3d-9a8e-49b4-9cc8-b19ca41bb939"
      unitRef="U_USD">-1675000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_f7a9192b-f201-4a7c-9726-4c389ec46fd1"
      unitRef="U_USD">1481000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_ddcfe7a8-d59e-4cd7-828f-99f0e91cbaab"
      unitRef="U_USD">-4527000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_d7ecc87d-e884-49b2-8858-6dd20cc1f80f"
      unitRef="U_USD">-3347000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_59fc7e1e-96aa-4874-9c0b-b58858c4b191"
      unitRef="U_USD">1571000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_1423c158-b5c6-48e0-bdc1-f8c0971a49a6"
      unitRef="U_USD">1485000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_238d343e-16fc-47e1-8d2d-b6c174cadded"
      unitRef="U_USD">4399000</ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities>
    <ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_a14c32ef-05b3-41e2-9406-e9cc563b67d0"
      unitRef="U_USD">6896000</ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_3a254ebf-7fa7-45a9-8cf5-e4ac065e5c24"
      unitRef="U_USD">85000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_bc256016-ffef-4537-a71d-413ac6c7d31e"
      unitRef="U_USD">161000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_922578a9-55cd-44d7-a797-ac5ed085dfc0"
      unitRef="U_USD">10672000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_a788aebc-0dea-4b11-a75e-ae6a242cfce8"
      unitRef="U_USD">4836000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_19dce186-97a3-42b8-84c8-3c2eb5f2489a"
      unitRef="U_USD">2250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_dd601638-1ede-468a-a824-543a4d9e09d9"
      unitRef="U_USD">3192000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_3cab3b75-124f-44b9-94ff-110bbe7b21fe"
      unitRef="U_USD">3518000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_f32294fb-8a16-4ffd-ac6f-48d964847744"
      unitRef="U_USD">300000</ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_c86e1b76-99e8-4631-9952-c53d875a2836"
      unitRef="U_USD">-3192000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_66b1fc5d-c78e-4ed0-93fc-a6be092519a3"
      unitRef="U_USD">-968000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_b5525b0e-1542-463c-854a-c648354a26c4"
      unitRef="U_USD">1584000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_d53d06b6-bfb7-466b-82f4-0a4a8e08a833"
      unitRef="U_USD">1888000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="-3"
      id="F_a1a739be-a6c1-4192-a129-557f8f1df818"
      unitRef="U_USD">1624000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_9a4d67ed-73e6-4185-a018-64f698e71c20"
      decimals="-3"
      id="F_96e552fa-8060-418f-a684-56502ef38d58"
      unitRef="U_USD">914000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_9b7f18b5-3b3a-4e74-b6a5-c8a660a83282"
      unitRef="U_USD">891000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_659f0ae7-07f4-4c6a-b12f-a646533c2930"
      unitRef="U_USD">7500000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_9f36ebfe-ff2b-41f7-9974-ac971a2782dd"
      unitRef="U_USD">-8431000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_bea5ccc6-ac1f-4e63-86a0-485dca8bf755"
      unitRef="U_USD">974000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_af369f72-8fc0-487c-91a2-6ee8d1a3be82"
      unitRef="U_USD">-951000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_68dd3690-8d9f-4ac8-b21f-6896ce1b98ea"
      unitRef="U_USD">4842000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_6a670428-5802-4ffa-b95d-cf39bde84ffd"
      unitRef="U_USD">17536000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_dd2082e5-119e-47db-a772-929ecc8d2f58"
      decimals="-3"
      id="F_79622ad5-d552-45d2-a2fb-08711a74fefe"
      unitRef="U_USD">24137000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_36e9b7c0-3da2-483a-9f21-93d76f6ae0c4"
      unitRef="U_USD">16585000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467"
      decimals="-3"
      id="F_ebabd572-023a-4b90-9550-20d963dd78c5"
      unitRef="U_USD">28979000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:StockholdersEquity
      contextRef="C_147ff029-0d39-4182-b2ed-5fafbcfb721e"
      decimals="-3"
      id="F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248"
      unitRef="U_USD">211366000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_a8b3e177-5416-4595-a8e6-ac943e6ed9da"
      decimals="-3"
      id="F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb"
      unitRef="U_USD">-1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_1b52bd25-4f88-4e0c-a1fd-55bc797c76b2"
      decimals="-3"
      id="F_ade7cd4f-c59e-482e-a44f-7f71a6c25989"
      unitRef="U_USD">-133278000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_522acc5b-5c40-4ade-9738-a1fcd25e5b38"
      unitRef="U_USD">78087000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11"
      decimals="-3"
      id="F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6"
      unitRef="U_USD">1417000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c"
      decimals="-3"
      id="F_a0d9fcad-9bbc-458f-8843-8ce078bc5fe8"
      unitRef="U_USD">1417000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11"
      decimals="-3"
      id="F_cdd7a789-5013-4240-a53c-f29691df1e49"
      unitRef="U_USD">740000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c"
      decimals="-3"
      id="F_385f0e1e-b6b0-4550-92e4-cf968ebec6ec"
      unitRef="U_USD">740000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_66c70309-2f8d-4db2-89ad-861454d4db11"
      decimals="-3"
      id="F_a0180243-6949-4df7-8356-51b5228517a7"
      unitRef="U_USD">4363000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c"
      decimals="-3"
      id="F_901f08b6-a53b-4ed3-a845-b92232b5eb31"
      unitRef="U_USD">4363000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="C_2d5d1911-8e7c-4584-9fcc-ebe4f3316d1c"
      decimals="-3"
      id="F_7b96acff-22ed-4af6-a73a-8b869ca8f548"
      unitRef="U_USD">-2139000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_8830337b-df52-4c5b-ae8c-7710f3292f5c"
      decimals="-3"
      id="F_3f05bd11-fb10-4ec3-abf4-162fbbaa5552"
      unitRef="U_USD">-2139000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_f4e3584a-fb2a-4793-99a2-add62be23141"
      decimals="-3"
      id="F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5"
      unitRef="U_USD">216406000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_40f7cf8b-ac49-4aed-8619-7f0bedbd607e"
      decimals="-3"
      id="F_02f3002c-57f0-480c-9212-43946ae6f564"
      unitRef="U_USD">-1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_aab39870-5b47-4195-85f6-66d06c02badc"
      decimals="-3"
      id="F_6dc7cba9-0458-4115-9037-1214992b02a9"
      unitRef="U_USD">-135417000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_e39ffed3-48ca-4219-918f-2c5d02a5e0ca"
      decimals="-3"
      id="F_485cca43-1104-49e6-bcd2-28b784ac716e"
      unitRef="U_USD">80988000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9"
      decimals="-3"
      id="F_fa789cd7-9676-4b25-9f0c-604a4ac5695f"
      unitRef="U_USD">167000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_273c4492-e7bf-4c4e-84e2-3b9498593429"
      unitRef="U_USD">167000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9"
      decimals="-3"
      id="F_13b54e13-4f1c-4681-8596-38b50f30c98a"
      unitRef="U_USD">884000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_6157084f-5a15-4ea8-b403-9505bb1bb41e"
      unitRef="U_USD">884000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9"
      decimals="-3"
      id="F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2"
      unitRef="U_USD">891000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_8a0ddfc4-6381-4d9e-9082-8aabad4f2044"
      unitRef="U_USD">891000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_796e1a07-d3c1-4e27-a3f2-109c204bf4c9"
      decimals="-3"
      id="F_3e37df84-2351-4c02-8279-b981578905bd"
      unitRef="U_USD">4595000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_6a53b6e5-f7f9-43d4-b695-283e1ef6fc6e"
      unitRef="U_USD">4595000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_0fe19e6c-342e-4acd-ad99-1c9b9e48a88b"
      decimals="-3"
      id="F_f217e5dd-7930-4dbc-b022-97b6c798a143"
      unitRef="U_USD">1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_bc76e510-aa28-441b-addc-fea3118dfad0"
      unitRef="U_USD">1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_fe5ff670-e4da-4744-b17f-9010efe8dd1d"
      decimals="-3"
      id="F_cbc9971d-8c03-418e-afb4-d405f887e962"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_1f2584bc-4966-4a6c-9b51-bf66edafc4c3"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_122fdbbd-8f22-48ea-8d14-7412d05fabe3"
      decimals="-3"
      id="F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61"
      unitRef="U_USD">219393000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_de5fd78c-e442-4de0-b49a-6c842fca68f4"
      decimals="-3"
      id="F_fa417b5f-87ff-4f7f-8229-95c1d57cb0fa"
      unitRef="U_USD">-137554000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_01a67d10-2d97-4dc5-8184-83288e75062a"
      unitRef="U_USD">81839000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_5fbd1f80-4685-4a9d-a079-78b2e2ce8e0a"
      decimals="-3"
      id="F_269afa3d-6d0e-460f-a875-ff85c603d317"
      unitRef="U_USD">195610000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_d3adecf1-a558-4ea3-aa8f-240f9b08a42c"
      decimals="-3"
      id="F_b4b1fffe-05e5-4d42-a196-06081764438c"
      unitRef="U_USD">-23000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_7cc4f3cb-dc19-4350-8d70-cdb7e5355f64"
      decimals="-3"
      id="F_90f0c545-77c5-4b75-8df2-76563adcd124"
      unitRef="U_USD">-132443000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_dd2082e5-119e-47db-a772-929ecc8d2f58"
      decimals="-3"
      id="F_3c122075-484a-48de-adc7-0bedacce1b09"
      unitRef="U_USD">63144000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6"
      decimals="-3"
      id="F_6421daa6-2960-47d6-a9bc-55d504bd91db"
      unitRef="U_USD">1724000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939"
      decimals="-3"
      id="F_441ac704-d71a-4b99-92e6-c2c1326d0ef5"
      unitRef="U_USD">1724000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6"
      decimals="-3"
      id="F_c96b052f-590a-43e8-94b7-cef3ddb15edd"
      unitRef="U_USD">431000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939"
      decimals="-3"
      id="F_f3d787e0-c5d4-4786-bdf2-d3e5279f58d0"
      unitRef="U_USD">431000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_334e0d35-6986-4c0e-8e89-9034cc6941a6"
      decimals="-3"
      id="F_c1a07101-3ee3-48cb-9810-c3367b92c1d8"
      unitRef="U_USD">3500000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939"
      decimals="-3"
      id="F_2abf6eea-263d-4191-b129-ec75196b0939"
      unitRef="U_USD">3500000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_88826bd9-9646-43d9-87a9-ef42835ba1bf"
      decimals="-3"
      id="F_cf63ad53-9b75-4285-bddf-cbb69889d719"
      unitRef="U_USD">12000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939"
      decimals="-3"
      id="F_744f29d3-b443-4dba-932e-124a1bf8fc4f"
      unitRef="U_USD">12000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_5aa1deee-a600-4749-b6b3-af4f2aa4ead6"
      decimals="-3"
      id="F_77460321-5ca1-44a7-a350-192e2cca6058"
      unitRef="U_USD">-326000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_6ca2a331-38b1-4579-9da0-21cd04af9939"
      decimals="-3"
      id="F_ab673d46-1fcb-4b4c-b2e1-ac3216a4eabf"
      unitRef="U_USD">-326000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_cb05bb13-709b-4f0c-bf23-36771a586c30"
      decimals="-3"
      id="F_f157cd43-3b57-4488-b768-67b1d0f09d01"
      unitRef="U_USD">200403000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_521d54f0-2514-4e13-8fb7-eda813d6e631"
      decimals="-3"
      id="F_0041b266-6d00-4aa1-82d4-1e94ca7589e4"
      unitRef="U_USD">-11000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_a4ccc371-2be4-4b6e-9956-a60e76834c63"
      decimals="-3"
      id="F_df3a42b2-d6c5-4fe7-b631-0fa2cfdf3b9d"
      unitRef="U_USD">-132769000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_ef07da5d-6520-476b-9216-5599d8b43d8f"
      decimals="-3"
      id="F_e6402d8e-225c-4ded-b2d7-022e4361c414"
      unitRef="U_USD">67623000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1"
      decimals="-3"
      id="F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d"
      unitRef="U_USD">164000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_168d9c10-a076-48ae-94ba-be4e34f9ce2f"
      unitRef="U_USD">164000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1"
      decimals="-3"
      id="F_2332af69-1803-4f12-9b80-76be6faa6679"
      unitRef="U_USD">483000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_d81e5e6d-a1f5-425c-82ac-bec9ba123827"
      unitRef="U_USD">483000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_86a0fb87-d93c-42f9-8370-9faebeb69bc1"
      decimals="-3"
      id="F_331236f8-3e1d-47bc-af95-3ac36c82ed62"
      unitRef="U_USD">3624000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_763b8f5c-d045-416c-9d10-ed33b8762a61"
      unitRef="U_USD">3624000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_1d623869-39ae-434c-8174-893d15134e5f"
      decimals="-3"
      id="F_487f8fcf-450c-478b-b6ad-55c4c8f56547"
      unitRef="U_USD">6000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_1bbed31f-c022-419a-a017-959bcb734a6b"
      unitRef="U_USD">6000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_2946deff-e8bd-42d3-ba6b-bb0bacc433c9"
      decimals="-3"
      id="F_b6834884-2b2f-4364-b444-bc39353b776b"
      unitRef="U_USD">271000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_a9c15112-68b8-4d7d-8374-af0075d21bc6"
      unitRef="U_USD">271000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_cba8a689-d6e2-4222-bc0f-37c9ab83063f"
      decimals="-3"
      id="F_74df9102-1ee2-42eb-a646-12e8c13d0e2f"
      unitRef="U_USD">203708000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_001c6846-db0d-46db-8dcd-7a77b5744a83"
      decimals="-3"
      id="F_a4807772-e2dc-4b20-82fd-160935e09e79"
      unitRef="U_USD">-5000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_9d72307d-87c6-4e4b-a4c1-a0f04dc8c9e5"
      decimals="-3"
      id="F_6e1ca89e-992d-4b94-9673-f3a68ef4d2de"
      unitRef="U_USD">-132498000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_4b9e9599-fa61-4b83-9a0d-e8bac1814467"
      decimals="-3"
      id="F_ebe00ee5-de25-4b6f-b700-f7857ad22734"
      unitRef="U_USD">71205000</us-gaap:StockholdersEquity>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_5b8fcb77-a73f-406d-8bdf-cbb3542d6645">&lt;p id="notes_to_condensed_consolidated_fs" style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;N&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;ote 1:  Overview and Basis of Presentation&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#x201c;Ooma&#x201d; or the &#x201c;Company&#x201d;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Fiscal Year.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company&#x2019;s fiscal year ends on January 31. References to fiscal 2025 and fiscal 2024 refer to the fiscal years ended January 31, 2025 and January 31, 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Basis of Presentation. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#x201c;GAAP&#x201d;) and applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2024 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#x2019;s Annual Report on Form 10-K for the year ended January 31, 2024 filed with the SEC on April 2, 2024 (&#x201c;Annual Report&#x201d;).&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2024 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2025.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Principles of Consolidation.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Comprehensive Loss. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;For all periods presented, comprehensive loss approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive loss have been omitted.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Use of Estimates.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#x2019;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#x2019;s estimates.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Significant Accounting Policies. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;There have been no material changes to the Company&#x2019;s significant accounting policies from those disclosed in the Annual Report.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Recent Accounting Pronouncements Not Yet Adopted. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In November 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) 2023-07, which is intended to improve reportable segment disclosure requirements, primarily through additional 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 amendments should be applied retrospectively to all prior periods presented in the financial statements. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In December 2023, the FASB issued ASU 2023-09, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_154ca672-54f9-47bb-a10f-9173ecafdd16">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Recent Accounting Pronouncements Not Yet Adopted. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In November 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) 2023-07, which is intended to improve reportable segment disclosure requirements, primarily through additional 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 amendments should be applied retrospectively to all prior periods presented in the financial statements. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In December 2023, the FASB issued ASU 2023-09, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_8f872e8e-686e-496f-9b63-27be3f74e0ef">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 2:  Revenue and Deferred Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company derives its revenue from &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; sources:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Subscription and Services Revenue&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Product and Other Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Revenue disaggregated by revenue source consisted of the following (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:43.794%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Subscription and services revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;59,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;54,726&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;117,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107,775&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Product and other revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,563&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,430&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;58,353&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;115,205&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company derived approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;61&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; of its total revenue from Ooma Business and approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;36&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; from Ooma Residential for the three months ended July 31, 2024 and 2023, respectively. The Company derived approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;61&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;56&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; of its total revenue from Ooma Business and approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;37&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; from Ooma Residential for the six months ended July 31, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, respectively. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;No&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; individual country outside of the United States, and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; single customer, represented 10% or more of total revenue for the periods presented.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Customers who represented 10% or more of net accounts receivable were as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:56.42%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.34%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.22%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.22%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;33&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td colspan="9" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:12pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Deferred Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:56.791%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.222%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.222%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Subscription and services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,034&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Product and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;22&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,056&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Less: current deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred revenue, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;During the three and six months ended July 31, 2024, the Company recognized revenue of approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, respectively pertaining to amounts deferred as of January 31, 2024. As of July 31, 2024, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2025, as well as amounts recorded during fiscal 2024 for annual contracts.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Remaining Performance Obligations.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million. The Company expects to recognize revenue on approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; of this amount over the next &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;12 months&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, with the balance to be recognized thereafter.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <ooma:NumberOfSourcesOfRevenue
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_3eda8878-f193-40d0-ba35-e3be26a05f34"
      unitRef="U_Source">2</ooma:NumberOfSourcesOfRevenue>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_8b521a92-b41a-497f-b7c2-f42278010571">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Revenue disaggregated by revenue source consisted of the following (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:43.794%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Subscription and services revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;59,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;54,726&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;117,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107,775&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Product and other revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,563&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,430&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;58,353&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;115,205&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e04aebd9-f2f4-434f-80b4-7a1d9e650f81"
      decimals="-3"
      id="F_88755d6c-4448-4818-8883-eb5c9c8cc54c"
      unitRef="U_USD">59566000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e6fefc5d-2aba-4ab4-8476-26ec53de5aec"
      decimals="-3"
      id="F_7cbf25b2-7c16-4cb9-be3b-115baec11f9c"
      unitRef="U_USD">54726000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0e7d41e2-7772-441f-bea9-509c5b42325a"
      decimals="-3"
      id="F_845472a9-03e9-4766-88fa-3477ecb677c4"
      unitRef="U_USD">117955000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_6d0f933b-568b-4c2e-abd8-01b8873fcff9"
      decimals="-3"
      id="F_ed293ad9-d6fb-4d37-9b34-b006d90c2f9d"
      unitRef="U_USD">107775000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_9cc79828-49a5-4afd-86f6-1aef7ef17498"
      decimals="-3"
      id="F_c9426b6c-2a19-4795-b2cb-46ae82e43125"
      unitRef="U_USD">4563000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_b33557b7-1ce2-4f43-a52d-6dc7c1ce3032"
      decimals="-3"
      id="F_2de7bb70-5bc5-4731-b70c-c3b452230587"
      unitRef="U_USD">3627000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_10d06e7e-5aec-40f0-87d2-6b340b336c67"
      decimals="-3"
      id="F_316198b1-8674-481b-8b53-938cf5af0512"
      unitRef="U_USD">8673000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_148d2984-35e4-45be-a2a1-787c7f65709c"
      decimals="-3"
      id="F_7b49f6e6-ae9f-4907-a4bf-6c46d5045abb"
      unitRef="U_USD">7430000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_d3ceefe0-43b2-4917-bd25-4fb705f87524"
      unitRef="U_USD">64129000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_efd97e56-6239-4d3f-b33f-5c5cf0633214"
      unitRef="U_USD">58353000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_a8e19651-93c2-4e76-8eb3-7af0d3601350"
      unitRef="U_USD">126628000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_be5723c5-4a3b-4a28-b55e-d9333400409d"
      unitRef="U_USD">115205000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_485746e9-62e4-4ee0-b53c-f6660c764c03"
      decimals="2"
      id="F_98110971-2621-4f62-97c9-eeca055a2f1e"
      unitRef="U_pure">0.61</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_b9df152b-327a-4710-a87a-df2a8ba0a9c6"
      decimals="2"
      id="F_48f70fda-fe15-435e-ae4c-509b651471ea"
      unitRef="U_pure">0.57</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_eb3a8f55-0cc5-46d5-8010-308801d274c0"
      decimals="2"
      id="F_c812a69d-2a5a-4992-8d2d-a5751313aaf9"
      unitRef="U_pure">0.36</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_811dd9c0-a330-44ef-8e5e-fca80238bd85"
      decimals="2"
      id="F_1b74a11f-8a76-4ecb-9950-e35df500c1fd"
      unitRef="U_pure">0.41</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_f2435b6d-cacd-471d-bbc4-1bdba910db58"
      decimals="2"
      id="F_f8f0b0b6-91f7-4c8a-8ad9-f1ce400b246f"
      unitRef="U_pure">0.61</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_780b8acc-e21f-4fbb-9417-988d2ba39f96"
      decimals="2"
      id="F_18ebee18-a886-4361-928d-f26afce60890"
      unitRef="U_pure">0.56</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_34dbe02b-4fae-49e8-9343-22b04152ba7a"
      decimals="2"
      id="F_ecd71804-9bf4-478e-a63c-2af6515ee5a7"
      unitRef="U_pure">0.37</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_6bd829b0-c089-4ceb-a7bc-b19d5827cb84"
      decimals="2"
      id="F_58dc3758-29b3-435f-8d33-42b0cf22ecf8"
      unitRef="U_pure">0.41</us-gaap:ConcentrationRiskPercentage1>
    <ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_6e365a8b-274a-423c-bdf7-d1100aa730f7"
      unitRef="U_Country">0</ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue>
    <ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="INF"
      id="F_6e1fb5db-623e-4abf-8038-60e2b6f9dcf4"
      unitRef="U_Country">0</ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue>
    <ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_38204f04-0235-4bca-b344-0cf2de46c352"
      unitRef="U_Customer">0</ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue>
    <ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="INF"
      id="F_544baeff-c260-4666-8327-e7426b05544c"
      unitRef="U_Customer">0</ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_5159441b-68cc-49bd-a668-f70ab48da50f">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Customers who represented 10% or more of net accounts receivable were as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:56.42%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.34%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.22%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.22%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;33&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td colspan="9" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_1a96aa66-e0e2-4fb9-9b90-e210f298731c"
      decimals="2"
      id="F_39b937b0-1693-45e4-acc5-fc040dcb7cb9"
      unitRef="U_pure">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_aa6f2c7d-c32e-4d4f-81b0-eaef2a879d64"
      decimals="2"
      id="F_971c7b19-b27b-452c-b64a-0006039ec742"
      unitRef="U_pure">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:DeferredRevenueByArrangementDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_5e048b0c-1221-474e-b4f4-d1a1cacb6bf3">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Deferred Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:56.791%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.222%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.222%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Subscription and services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,034&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Product and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;22&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,056&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Less: current deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred revenue, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:DeferredRevenueByArrangementDisclosureTextBlock>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_69c94376-c854-411e-b064-24a5951d6e6e"
      decimals="-3"
      id="F_abee92d7-50fc-4d9d-b341-74a1124f991a"
      unitRef="U_USD">17131000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_32c9db7a-ba31-4b2f-af90-0e45725fdbb0"
      decimals="-3"
      id="F_7ea09997-6665-4b6e-a007-2cff53c3a79c"
      unitRef="U_USD">17034000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_8e974ebe-a10f-4e85-96b3-adc88d345dcf"
      decimals="-3"
      id="F_dd9a0a00-e0b8-4c3d-9e22-b9c7c22b44ed"
      unitRef="U_USD">10000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_8389226e-0559-4db8-bd28-1e66c1579d3d"
      decimals="-3"
      id="F_d9e1083b-00b3-4556-b21b-4bf4f7ca10b3"
      unitRef="U_USD">22000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_064526b2-9df6-4ce3-94ac-1a658658477d"
      unitRef="U_USD">17141000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_9fe3221d-c99f-4f7b-aa1f-66c61b6abb90"
      unitRef="U_USD">17056000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_d0437322-ba31-4dd0-9592-5997fc223316"
      unitRef="U_USD">17123000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_4c091ac3-df21-45ac-adaf-449d2dad16fd"
      unitRef="U_USD">17041000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_59da5946-ffad-41e1-9e8e-4c2b95c2f4e7"
      unitRef="U_USD">18000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_92cd42bd-469f-4f60-955a-04f6a925d22a"
      unitRef="U_USD">15000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_6394600f-5771-43fe-a2fe-3f8fb15bfa6f"
      unitRef="U_USD">3000000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_a92fd7ee-945d-4ef8-a0a6-5b4cf03a3c6d"
      unitRef="U_USD">13900000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce"
      decimals="-5"
      id="F_02c31136-94af-426b-847d-7f0cd6faa8da"
      unitRef="U_USD">34600000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce"
      decimals="2"
      id="F_a0c56a02-29e2-4a10-8c99-e44673ee286e"
      unitRef="U_pure">0.41</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_077966b7-6eee-4738-a43f-66b7ae93d1ce"
      id="F_d27e9247-d463-48d0-a996-8743aa35a094">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_1ba4ec73-0247-4d0e-9b68-e93caeb125d3">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 3: Fair Value Measurements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company estimates and categorizes fair value by applying the following hierarchy:&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Level 3:	Unobservable inputs that are supported by little or no market activity.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company had $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in cash and cash equivalents as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024 and January 31, 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Non-Marketable Equity Investments. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million. This balance represents investments in preferred shares of Global Telecom Corporation (&#x201c;GTC&#x201d;).&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company&#x2019;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_f1b6f417-4c75-456b-8b2a-0d2a61b3c536"
      unitRef="U_USD">16600000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-5"
      id="F_8d73909f-01b7-4cc6-8803-76481ce8a42f"
      unitRef="U_USD">17500000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <ooma:NonMarketableEquityInvestments
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_bca5c0ac-b64c-406c-aa53-9964e582e768"
      unitRef="U_USD">3300000</ooma:NonMarketableEquityInvestments>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_e563519b-a6eb-4ae0-bbdf-c121c7b344dc">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 4: Balance Sheet Components&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following sections and tables provide details of selected balance sheet items (in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Inventories&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,033&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,204&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,758&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,237&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,782&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred sales commissions, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,060&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,579&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,712&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Convertible note receivable (see "GTC" below)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:11pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,787&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,559&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,497&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred sales commissions, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,358&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total other non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21,044&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,615&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;Customer Acquisition Costs&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; Amortization of deferred sales commissions was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the three months ended July 31, 2024 and 2023, respectively, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the six months ended July 31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;Global Telecom Corporation.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; In December 2018, the Company invested $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in cash in GTC, a privately-held technology company, in exc&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#x2019;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2024, the Company had $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in non-cancelable inventory purchase commitments to GTC.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. Per the terms of the note, in the event of an equity financing all of the outstanding principal and accrued but unpaid interest would be converted to a number of shares of standard preferred stock equal to the Conversion Amount divided by the Conversion Price. "Conversion Amount" is defined as outstanding principal plus unpaid accrued interest. "Conversion Price" is &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;70&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;% of the per share price for the preferred stock. As of the Financing Date, the carrying value of the convertible promissory note of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, including accrued interest, was converted to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million shares of preferred stock of GTC. Upon the conversion event, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;GTC is no longer a variable interest entity for accounting purposes. T&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;he Company recorded a gain on note conversion of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million to other income &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;in the condensed consolidated statements of operations.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; The Company recorded the fair value of GTC preferred stock of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024 to other assets in the condensed consolidated balance sheets.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Payroll and related expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,737&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Regulatory fees and taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,475&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,598&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834;"&gt;&lt;span style="-sec-ix-hidden:F_cdb13912-9734-4f23-8fba-675ba3625e01;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Short&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer-related liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,365&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,118&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,101&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,827&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_15c49943-c647-4197-8fc8-d632a5012875">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following sections and tables provide details of selected balance sheet items (in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Inventories&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,033&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,204&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,758&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,237&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,782&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e441b9d4-d2c7-47a6-9315-966421ac651e"
      unitRef="U_USD">10033000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_0025c422-d6d2-4d71-8538-be3b40b8c538"
      unitRef="U_USD">12024000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_d1b4d0ff-efe7-407b-9fe8-9d0acfef3009"
      unitRef="U_USD">5204000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_24c42370-742d-419a-ba04-0e387f2b054c"
      unitRef="U_USD">7758000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_821e093e-2444-40c9-8c56-f751f2baa27c"
      unitRef="U_USD">15237000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_142b48a1-0163-401f-a025-5ae6327ddd0d"
      unitRef="U_USD">19782000</us-gaap:InventoryNet>
    <us-gaap:ScheduleOfOtherAssetsTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_da23933c-4600-4c24-b9df-f9d865e86648">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred sales commissions, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,060&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,579&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,712&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Convertible note receivable (see "GTC" below)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:11pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,787&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,559&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,497&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred sales commissions, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,358&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:11pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total other non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21,044&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,615&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfOtherAssetsTableTextBlock>
    <ooma:DeferredSalesCommissionsCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_4ceebbdc-e55e-40eb-b900-da2fb8a169d2"
      unitRef="U_USD">9060000</ooma:DeferredSalesCommissionsCurrent>
    <ooma:DeferredSalesCommissionsCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_6c07bc4c-12ae-4d35-bfd5-8c8614e87963"
      unitRef="U_USD">8579000</ooma:DeferredSalesCommissionsCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e77575d9-9cbb-4f8d-b113-2f5b4ea68726"
      unitRef="U_USD">4712000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_04da288b-f105-46e3-95d9-676d4371bce9"
      unitRef="U_USD">4177000</us-gaap:PrepaidExpenseCurrent>
    <ooma:ConvertibleNoteReceivableFromRelatedParty
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_ced3a01e-c7c1-4e08-9426-c823991b4084"
      unitRef="U_USD">0</ooma:ConvertibleNoteReceivableFromRelatedParty>
    <ooma:ConvertibleNoteReceivableFromRelatedParty
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_c58be2ba-bea9-4de5-8c1a-97e01b4fbfb2"
      unitRef="U_USD">2257000</ooma:ConvertibleNoteReceivableFromRelatedParty>
    <us-gaap:OtherAssetsCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_0884b6a1-3359-4e54-b48b-db2475190eb1"
      unitRef="U_USD">1787000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_be1ebcac-1959-44b4-999d-a297dc92f63f"
      unitRef="U_USD">1484000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_b9e4cd55-3b95-4f62-a529-19c6c560e4fc"
      unitRef="U_USD">15559000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_0df9c8de-8ba4-41f4-9700-cb060744d807"
      unitRef="U_USD">16497000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <ooma:DeferredSalesCommissionsNonCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_c807d5a9-2f27-472f-92da-0843bd28698f"
      unitRef="U_USD">15092000</ooma:DeferredSalesCommissionsNonCurrent>
    <ooma:DeferredSalesCommissionsNonCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_da62ee32-edbb-467a-8430-7cf9386acda8"
      unitRef="U_USD">15257000</ooma:DeferredSalesCommissionsNonCurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_49e2585d-5a9a-415a-ac7f-329a36607af0"
      unitRef="U_USD">5952000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_fef13798-c515-4a89-bc64-30b3475c7a50"
      unitRef="U_USD">2358000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_546fc64f-6d27-472a-b5bf-8293efecd006"
      unitRef="U_USD">21044000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_a17cd7a4-ced9-41b0-a8b4-9cd87436baaf"
      unitRef="U_USD">17615000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_5ae4e56d-537a-4a1d-ab84-b33a23db7bfc"
      unitRef="U_USD">2400000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-5"
      id="F_10b5a430-613d-4e68-a211-b2bd54994c7a"
      unitRef="U_USD">2200000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_d42713e7-439d-4491-85bf-80d3a19eac80"
      unitRef="U_USD">4800000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_e1e1e649-7d3c-4b4e-aeff-4df3c2728983"
      unitRef="U_USD">4400000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <ooma:InvestmentInPrivatelyHeldCompany
      contextRef="C_22a33c2c-f968-47ad-888f-413dcc946735"
      decimals="-5"
      id="F_55ffd69b-d961-4a83-b7e0-2c1ee69ba8ae"
      unitRef="U_USD">1300000</ooma:InvestmentInPrivatelyHeldCompany>
    <us-gaap:PurchaseObligation
      contextRef="C_77cde952-5e65-4527-93b2-0ce3ff09e5da"
      decimals="-5"
      id="F_b253f20a-5d32-467c-91ac-d648f284a4cb"
      unitRef="U_USD">800000</us-gaap:PurchaseObligation>
    <ooma:ConversionPricePerSharePercentage
      contextRef="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011"
      decimals="INF"
      id="F_53e080d5-8e52-4e99-b570-1c5e6bcf1e4c"
      unitRef="U_pure">0.70</ooma:ConversionPricePerSharePercentage>
    <ooma:CarryingValueOfConvertibleNote
      contextRef="C_a78f120b-2259-42f0-9736-5cb10fb93a1b"
      decimals="-5"
      id="F_f814f687-fd9c-4462-aaf5-58faa0729114"
      unitRef="U_USD">2300000</ooma:CarryingValueOfConvertibleNote>
    <ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares
      contextRef="C_a78f120b-2259-42f0-9736-5cb10fb93a1b"
      decimals="-5"
      id="F_99bb27c4-00fc-4cff-b1c1-c52590025d86"
      unitRef="U_shares">8200000</ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares>
    <ooma:GainOnNoteConversion
      contextRef="C_09b7fb85-319e-4ac7-bfb4-80aae09f7011"
      decimals="-5"
      id="F_cca6626b-a9fb-4afb-b39d-7be5c22ad09d"
      unitRef="U_USD">1000000</ooma:GainOnNoteConversion>
    <ooma:NonMarketableEquityInvestments
      contextRef="C_ac87bc7f-9032-45e8-b4bc-030cd670bfb8"
      decimals="-5"
      id="F_dfbbed63-a306-453e-83d1-c7303c659004"
      unitRef="U_USD">3300000</ooma:NonMarketableEquityInvestments>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_18fa3aa0-1eb6-4f33-aff8-66411ae5c836">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.37%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.658%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.46%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.837%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:top;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Payroll and related expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,737&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Regulatory fees and taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,475&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,598&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_fee428e7-6cf6-46a2-a7f1-2126dd8bf834;"&gt;&lt;span style="-sec-ix-hidden:F_cdb13912-9734-4f23-8fba-675ba3625e01;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Short&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer-related liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,365&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,118&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,101&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,827&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_3ee86fe1-8471-4703-811b-263487d6b41b"
      unitRef="U_USD">10737000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_96b3d2a9-8b8a-45f6-aaa4-4f843999dc11"
      unitRef="U_USD">12301000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <ooma:RegulatoryTaxAccruals
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_14ab7009-b64b-4d8b-9c4c-6186c66c6774"
      unitRef="U_USD">5475000</ooma:RegulatoryTaxAccruals>
    <ooma:RegulatoryTaxAccruals
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_ec58c325-00a7-4679-b558-f63fdae03099"
      unitRef="U_USD">4598000</ooma:RegulatoryTaxAccruals>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_a98c88f2-aeb8-4b37-aefe-2415661e6c87"
      unitRef="U_USD">3710000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_829c5dd2-5c8a-4e93-bab0-5174c6a87faf"
      unitRef="U_USD">3742000</us-gaap:OperatingLeaseLiabilityCurrent>
    <ooma:AccruedCustomerRelatedLiabilitiesCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6b78a460-3ceb-4c14-b579-8e34aacec484"
      unitRef="U_USD">1365000</ooma:AccruedCustomerRelatedLiabilitiesCurrent>
    <ooma:AccruedCustomerRelatedLiabilitiesCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_64622d93-000d-47fc-894f-b538e09a00d1"
      unitRef="U_USD">1118000</ooma:AccruedCustomerRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6a7f5fcb-8e99-4502-94f1-414f45c5bd28"
      unitRef="U_USD">3101000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_c13f40d9-bbba-491c-80a7-a7e93312b928"
      unitRef="U_USD">4827000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_c2d23d1c-2bbc-4b44-9d6e-a4d62ff1fb08"
      unitRef="U_USD">24388000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_fa38bda3-7a2e-4e64-928d-16dcb799a2f1"
      unitRef="U_USD">26586000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_c404e8f3-2880-4b72-880f-6fbbb1dce955">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 5: Acquired Intangible Assets&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:20.631%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.019%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:7.41%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Estimated life&lt;br/&gt;(in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Developed technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,277&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,865&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,753&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,733&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,336&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;841&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;844&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;695&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,851&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,896&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Amortization expense was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for each of the three months ended July 31, 2024 and 2023, respectively, and was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for each of the six months ended July 31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;At &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024, the estimated future amortization expense for intangible assets is as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.69%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.42%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:17.497%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:23.535%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2025 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,624&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,513&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f958012e-51f8-48e3-9a68-654b936eabce">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:20.631%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.019%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:7.41%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.198%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.986%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.118%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.708%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Estimated life&lt;br/&gt;(in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Developed technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,277&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,865&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,753&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,733&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,336&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;841&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;844&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;695&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:left;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,851&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,896&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_20fe6eb1-2de1-4cdc-a0eb-8a020cb322ec"
      id="F_c972c588-8442-4421-9c92-cecb485433ab">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_26a9200f-2b97-4fce-a5c6-1c32d16a7f0f"
      id="F_678470f8-afc8-4ec4-ac8c-a07fdf23726c">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3"
      decimals="-3"
      id="F_3f0696e2-bd84-4cef-90c6-6363ed185f12"
      unitRef="U_USD">20618000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3"
      decimals="-3"
      id="F_0fbbe456-842d-4ed1-ba4f-6dfcaf5b19b5"
      unitRef="U_USD">4277000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_0c136cc3-d4df-4e9d-8ed5-03a056c2b3a3"
      decimals="-3"
      id="F_0dc09f34-3bdb-45cb-b90f-43b6ed5ddc7c"
      unitRef="U_USD">16341000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c"
      decimals="-3"
      id="F_183b312c-3248-4d4e-a316-335595304415"
      unitRef="U_USD">20618000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c"
      decimals="-3"
      id="F_239eeb3b-3e1b-469e-8a8a-8c592e05069b"
      unitRef="U_USD">2865000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_afd554ed-7f4a-4cbf-8b59-2bcee74e409c"
      decimals="-3"
      id="F_f9ae4d30-a4c9-4d8e-9d74-8a21d9d261c3"
      unitRef="U_USD">17753000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_e73a2722-4182-45da-b428-1c7d1f66fe1f"
      id="F_00215930-b856-49b6-96c7-a7391ff88b04">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_d3160528-5984-4b87-aa53-c12d0fccdebf"
      id="F_6caa6d1b-5601-429c-b526-89e16038e78c">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08"
      decimals="-3"
      id="F_aeb208e7-769c-479d-9709-1898bc423fcf"
      unitRef="U_USD">16545000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08"
      decimals="-3"
      id="F_53f61032-f32b-4b3a-83a6-e315ed1be10e"
      unitRef="U_USD">8733000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7d01b726-dc78-47a4-82d5-a8dc04148e08"
      decimals="-3"
      id="F_e87cb55b-9a30-4503-bb37-453b09070588"
      unitRef="U_USD">7812000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3"
      decimals="-3"
      id="F_5d3a2679-10a0-4ef2-bdf6-7bae4f0c0e26"
      unitRef="U_USD">16545000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3"
      decimals="-3"
      id="F_77c4c3a7-937b-4067-afaa-906cbc00b4ec"
      unitRef="U_USD">7336000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_68ddf9e3-8a3a-4806-9889-6d00cddd36f3"
      decimals="-3"
      id="F_2eabccc6-be63-4010-b0f6-a91b04c7fcb4"
      unitRef="U_USD">9209000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_38017c8d-6d39-4aa1-a96d-4f8c39224d8c"
      id="F_e9d1dfa5-8f25-40fc-991a-e8bbbbc28180">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_ee4e2f31-abed-4aa0-87bb-dab4d957ff79"
      id="F_042f3252-bb92-49de-ad91-e266d5d25f6d">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a"
      decimals="-3"
      id="F_23e579fc-164f-439d-a851-f933eeec1c14"
      unitRef="U_USD">1685000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a"
      decimals="-3"
      id="F_2cd51e53-c591-41ca-aae0-38f0efc7383d"
      unitRef="U_USD">841000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_b722bc3f-aabf-47e1-8212-4cf43b8ecd4a"
      decimals="-3"
      id="F_2e2e08f5-c1af-4621-8458-b0809f66a1b9"
      unitRef="U_USD">844000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86"
      decimals="-3"
      id="F_47e1b3c9-eb8b-481a-8997-a6d2234ac692"
      unitRef="U_USD">1685000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86"
      decimals="-3"
      id="F_08981920-3d87-4fc6-a03e-25ee11aa34f7"
      unitRef="U_USD">695000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7e2e3a64-462e-4311-9552-e6aac227ba86"
      decimals="-3"
      id="F_1f232143-ed44-42f6-bbb7-f4eb139583b3"
      unitRef="U_USD">990000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_8d23c486-7892-4917-b991-196bebd156fc"
      unitRef="U_USD">38848000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6bf5a2d0-bdc2-436a-88f3-46985af90f9b"
      unitRef="U_USD">13851000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_9c9ef257-a428-4502-897e-28c6b100093b"
      unitRef="U_USD">24997000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_de34cfb9-ad53-4631-bcfb-03e967e1cfa9"
      unitRef="U_USD">38848000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_fb594dfc-6094-4793-9e50-26c3cddbdd7d"
      unitRef="U_USD">10896000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_d63dc748-5b00-4ad1-91e7-db953fcc289b"
      unitRef="U_USD">27952000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_5b9caa01-6e18-48cf-9bab-85ff4a2319f3"
      unitRef="U_USD">1500000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-5"
      id="F_fe5d2026-dc2d-4bd1-9969-d01106724bb5"
      unitRef="U_USD">700000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_2dfc0f9c-c027-46f9-91eb-a80e900963a2"
      unitRef="U_USD">3000000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_29e1621f-776f-4748-926b-93e721532b30"
      unitRef="U_USD">1400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_78d0dedf-e88e-4c93-95a8-fd59df08d118">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;At &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024, the estimated future amortization expense for intangible assets is as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:48.69%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.42%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:17.497%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.619%;"&gt;&lt;/td&gt;
        &lt;td style="width:23.535%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2025 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,624&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,513&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24,997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_85446f05-6fdd-45c3-9bdd-9204219ca726"
      unitRef="U_USD">2812000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_496c4c0a-472e-41c8-9610-04c7f1351df9"
      unitRef="U_USD">5624000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_6a29e632-1684-4c7f-b11e-07b457fbeaca"
      unitRef="U_USD">5068000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e98686ee-575a-4d3e-a80d-9244c6c5f5de"
      unitRef="U_USD">3950000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_a2644739-69e7-4b74-b23f-3507d097cdb5"
      unitRef="U_USD">3030000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_9d946c53-d96f-46e8-af91-d5024af91502"
      unitRef="U_USD">4513000</ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_74590a53-f346-4734-b82e-b712893d34c6"
      unitRef="U_USD">24997000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_0291d184-8ed2-44fd-85cf-52ff757abc28">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 6:  Operating Leases&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;2033&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.531%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;Total leased assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Short-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,676&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;Total lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,345&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,418&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Weighted-average remaining lease term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.6&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.0&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company incurred total lease costs in its condensed consolidated statements of operations of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the three months ended July 31, 2024 and 2023, respectively, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the six months ended July 31, 2024 and 2023, respectively. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Additionally, in the third quarter of fiscal 2023, the Company recorded facilities consolidation charges of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million to general and administrative expense, in connection with the leased office facilities assumed during the second fiscal quarter of 2023 in the Company's acquisition of Junction Networks, Inc. ("OnSIP"), which the Company subsequently determined were not needed to support the future growth of its business. In the second quarter of fiscal 2024, upon the lessor's sale of the property, the Company wrote off the remaining $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million lease liability related to the lease as facilities consolidation gain in general and administrative expense in the condensed consolidated statements of operations.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.567%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.061%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cash payments for operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Right-of-use assets recognized in exchange for new operating lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,902&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024, maturities of operating lease liabilities were as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.531%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2025 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,935&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,810&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,969&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,720&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,630&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,806&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,461&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,345&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseDescription
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_73a67218-f35b-44c6-8160-353270392069">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal 2033.</us-gaap:LesseeOperatingLeaseDescription>
    <ooma:LesseeOperatingLeaseExpirationDateEndingPeriod
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_b72c0c6e-5677-498e-bf30-7474b1db6ecf">2033</ooma:LesseeOperatingLeaseExpirationDateEndingPeriod>
    <ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_9f4e909e-4922-4677-b5d9-251d7a449803">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.531%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="4" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;Total leased assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,041&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Short-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,676&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;Total lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,345&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,418&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Weighted-average remaining lease term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.6&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.0&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_684a5383-b516-4e5b-8dea-05e20b689aea"
      unitRef="U_USD">15833000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_52661d13-ba7a-49b0-95a1-30e9c4b4d802"
      unitRef="U_USD">17041000</us-gaap:OperatingLeaseRightOfUseAsset>
    <ooma:OperatingLeaseAsset
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_2d2362d0-70ff-4315-99a9-fd1cf089e030"
      unitRef="U_USD">15833000</ooma:OperatingLeaseAsset>
    <ooma:OperatingLeaseAsset
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_0cfe51f6-6d97-4798-8cdf-6887118e9e46"
      unitRef="U_USD">17041000</ooma:OperatingLeaseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_0a7084ad-a00d-4466-8d85-5e206b9ac872"
      unitRef="U_USD">3710000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_2bfa0464-3163-4f39-86bc-49e6aa6a2b3d"
      unitRef="U_USD">3742000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_885b9192-b927-4141-b8be-a97bc7644c74"
      unitRef="U_USD">12635000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_90ac5a35-2672-498e-a144-48cc86ecee55"
      unitRef="U_USD">13676000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_3eac4847-b662-410f-8247-1f261336a972"
      unitRef="U_USD">16345000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_9776d65c-4ef0-4798-bd74-1e9138f6750b"
      unitRef="U_USD">17418000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      id="F_510c7429-50a1-41ba-8664-5bd32359906c">P5Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      id="F_78f641f9-3c2d-4fbd-8423-101ce97bd464">P6Y</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="3"
      id="F_1d8a6981-fd8a-4846-bed8-029ad2867279"
      unitRef="U_pure">0.063</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="3"
      id="F_3e55816a-62be-4c3d-bc29-ca8e540aa1ea"
      unitRef="U_pure">0.062</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LeaseCost
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_68eb4db2-3ea9-4fa9-9ff9-8cf79482b0ee"
      unitRef="U_USD">1600000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-5"
      id="F_fee73d16-af82-485b-83ac-6516543e8814"
      unitRef="U_USD">1500000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_686531e8-61a4-47ab-aaba-512d9b6b1002"
      unitRef="U_USD">3200000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_5749aa18-f8a1-4f19-9634-8bdfea662020"
      unitRef="U_USD">2800000</us-gaap:LeaseCost>
    <ooma:FacilitiesConsolidationCharges
      contextRef="C_8516e2cc-81a9-44e6-907d-bf8b6d2d89be"
      decimals="-5"
      id="F_720393dc-15b7-42e3-91be-12772f251704"
      unitRef="U_USD">1400000</ooma:FacilitiesConsolidationCharges>
    <ooma:RemainingOperatingLeaseLiabilityWroteOff
      contextRef="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876"
      decimals="-5"
      id="F_3d12867a-ff13-4fd1-a1ac-622a133fc3e1"
      unitRef="U_USD">1000000</ooma:RemainingOperatingLeaseLiabilityWroteOff>
    <ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_d7523a64-0869-4295-b6bf-509d301219ea">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.567%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.061%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.141%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:9.488%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="7" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cash payments for operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Right-of-use assets recognized in exchange for new operating lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,902&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_d1400697-067c-45d0-b3a7-f7d83d40c359"
      unitRef="U_USD">958000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_80bb0298-1db4-448b-b964-ec3733eb143a"
      unitRef="U_USD">1131000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_678c5313-d629-4525-9513-07e8c62294fa"
      unitRef="U_USD">1909000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_0986e4ae-59e0-4d37-b7dd-a2d8f002a0bd"
      unitRef="U_USD">2028000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_6ecc12f3-ca91-42b0-ac9f-8e0f1eada9dd"
      unitRef="U_USD">310000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_1550b38f-93ad-4428-a557-f933fa431dfd"
      unitRef="U_USD">4902000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_4b47d513-4e0f-4169-84b1-bb7ac8426275">&lt;p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024, maturities of operating lease liabilities were as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:45.531%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.32%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.078%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-family:Arial;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2025 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,935&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,810&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,969&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,720&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,630&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:7pt;vertical-align:top;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,806&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,461&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,345&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_8720a997-44c5-45ff-abd6-209977237d05"
      unitRef="U_USD">1935000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_427709b3-a7ef-4621-b996-dad3cb9b5a0d"
      unitRef="U_USD">3810000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_d0fa4b00-0654-43ea-a434-afaa58f27ccb"
      unitRef="U_USD">3969000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_8db5425c-dc18-46e0-8f1e-a6b7e82002fa"
      unitRef="U_USD">2720000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e650b58e-e562-47b3-b43c-b25b7e6b67bd"
      unitRef="U_USD">2742000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_bd8b6122-c265-4e68-9f03-2f2270e8b8f8"
      unitRef="U_USD">4630000</ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_f6f1d873-64cd-4c20-b501-a5a8949cdc50"
      unitRef="U_USD">19806000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_e6cc8f8e-204a-4a35-b13c-9a497e8c3284"
      unitRef="U_USD">3461000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_def15a8e-8326-42bd-b4a8-d968998f2b96"
      unitRef="U_USD">16345000</us-gaap:OperatingLeaseLiability>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_e41caca0-3e18-49cb-8b3c-ec98103db477">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 7: Stockholders&#x2019; Equity&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan, pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (&#x201c;ESPP&#x201d;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Stock Options.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Stock option activity for the six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; was as follows:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:52.089%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Weighted-Average&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Aggregate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Exercise Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Intrinsic Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,161&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.14&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;39&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.99&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,118&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.28&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,040&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Vested and exercisable as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9.92&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,040&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2024 and 2023 was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, respectively. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; stock options granted during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;six months ended July 31, 2024 and 2023.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Restricted Stock Units.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;RSU activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; was as follows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:62.032%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.543%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.543%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair&lt;br/&gt;Value Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.68&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;703&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12.77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,465&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.73&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Employee Stock Purchase Plan. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;During each of the six months ended July 31, 2024 and 2023, employees purchased &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million shares at a weighted-average price of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.35&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;10.60&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; per share, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Stock Repurchase Plan. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In June 2024, the Company's Board of Directors authorized a stock repurchase plan of repurchasing up to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million of the Company's common stock. Repurchases of our common stock may be effected, from time to time, in open market, negotiated or block transactions, or other means, in accordance with applicable securities laws. The timing and the amount of any repurchased common stock will be determined by our management based on its evaluation of market conditions and other factors. The repurchase plan will be funded using our cash. Any repurchased shares of common stock will be retired. The plan does not obligate us to repurchase any specific dollar amount or to acquire any specific number of shares of our common stock. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;three and six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, we repurchased in the open market &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;98,215&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; shares of common stock for an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million. As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million remained authorized and available under the Company&#x2019;s share repurchase plan for future share repurchases.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.&lt;/span&gt;&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_39091450-b5a8-414c-95ed-35e309322eb6">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Stock Options.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Stock option activity for the six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; was as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:52.089%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.459%;"&gt;&lt;/td&gt;
        &lt;td style="width:13.052%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Weighted-Average&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Aggregate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Exercise Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Intrinsic Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,161&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.14&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;39&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.99&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:middle;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,118&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.28&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,040&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Vested and exercisable as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9.92&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,040&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="INF"
      id="F_27f33769-1d41-48e5-bde6-3af97c514d0c"
      unitRef="U_shares">1161000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="2"
      id="F_9552eb5a-d222-40a7-9f45-823f1aca02f4"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">10.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-3"
      id="F_91ddabc8-c074-43a0-9d1b-3e8faeecf372"
      unitRef="U_USD">2522000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_7de7fa93-2496-4f8b-b8ca-5c2475c8ad3e"
      unitRef="U_shares">39000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_adcac198-6318-452c-8b03-bb91bfc418f7"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">5.99</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_574e0c61-53ca-4edb-9e75-796c3c9ffaf6"
      unitRef="U_shares">4000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_b702769e-350b-47a9-afa5-80fc2dbc47dc"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">11.24</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="INF"
      id="F_68b83771-f3d0-45de-9607-cc2eece2418c"
      unitRef="U_shares">1118000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="2"
      id="F_9e5ccf13-1627-4479-9d0e-8bef4397f120"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">10.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_c8cfccab-fb67-4a38-8226-0cabce0de323"
      unitRef="U_USD">2040000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="INF"
      id="F_edcde8df-77f0-4c02-99f6-ea444cefa9f5"
      unitRef="U_shares">1057000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="2"
      id="F_1eb68e6a-0430-4c6c-b0e9-d7c76b7b914b"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">9.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-3"
      id="F_84b9371f-356a-4d93-9900-f632b32b5c3b"
      unitRef="U_USD">2040000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_95187883-d284-43d3-8633-3b7f847d82ef"
      decimals="-5"
      id="F_7fa03453-7132-47af-b83d-4f95351652d8"
      unitRef="U_USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_c74b23f2-81c2-4293-bf43-153f3ecaf755"
      decimals="-5"
      id="F_c6f57602-7f01-4248-b189-906156820584"
      unitRef="U_USD">400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_931c3bb1-185f-4d4d-8799-09cec00d61e2"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="INF"
      id="F_7b4b8678-f4c0-4a23-b14b-a2fc80c1b1e1"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f08141d5-086b-4d69-a3c2-62f9b8555b13">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;RSU activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; was as follows:&lt;/span&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:62.032%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.543%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.72%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.543%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair&lt;br/&gt;Value Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.68&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;703&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12.77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Balance as of July 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,465&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.73&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a"
      decimals="INF"
      id="F_8ae085cf-542e-4313-ab6a-973b5bd5d472"
      unitRef="U_shares">2075000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_b61795c7-1524-40ff-b6eb-0b3bf351dd4a"
      decimals="2"
      id="F_f48199bd-3380-46cb-bba8-3beb6329256a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="INF"
      id="F_5226fd58-b911-4107-8f72-52dbe9004525"
      unitRef="U_shares">1114000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="2"
      id="F_4e8ddaf0-3b21-4caa-9b57-a5bc0059ed90"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">8.68</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="INF"
      id="F_6477a85f-053c-4c52-8f4c-f6e4d741d1e6"
      unitRef="U_shares">703000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="2"
      id="F_d6a41f82-7194-4826-8cfb-01ff0634b4fa"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">12.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="INF"
      id="F_8f969420-48bc-4c50-89d5-dfd404b052da"
      unitRef="U_shares">21000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="C_ce482314-1107-439b-af19-432cf0ee6ecc"
      decimals="2"
      id="F_ca8734bc-d4be-4a15-a702-20636edc984f"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_76076364-b658-47aa-8569-630b56e80ed3"
      decimals="INF"
      id="F_9810bff0-f151-41e4-9059-27a5e9ec376d"
      unitRef="U_shares">2465000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_76076364-b658-47aa-8569-630b56e80ed3"
      decimals="2"
      id="F_df699fc6-1f44-404a-8b22-1bd3afe6a710"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">11.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_357c18b2-c02e-479d-900d-1389344d4328"
      unitRef="U_shares">200000</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_0ee1d2e1-2ec3-467b-b61b-0e29c685c3f9"
      unitRef="U_shares">100000</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased
      contextRef="C_b4afac33-dffe-4d1b-b038-3a2fa1f251ef"
      decimals="INF"
      id="F_356717ba-b9c6-4ee9-84d5-32e3b9eb600a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">7.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased
      contextRef="C_85f605d7-f321-40fa-81df-72dcd9044696"
      decimals="INF"
      id="F_27ef886e-14f1-4b60-844f-0b587368af57"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">10.6</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased>
    <srt:StockRepurchaseProgramAuthorizedAmount1
      contextRef="C_f410d6a3-09cc-46ad-b738-d75b0bb1c6a9"
      decimals="INF"
      id="F_f2656250-8fa4-4f75-b619-f6a60b1a7f11"
      unitRef="U_USD">4000000</srt:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c"
      decimals="INF"
      id="F_88b926a1-3790-42e3-9586-e0b7c78f3968"
      unitRef="U_shares">98215</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e"
      decimals="INF"
      id="F_2b973f50-328a-4552-a259-6a62054e7794"
      unitRef="U_shares">98215</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_ec7ccfab-4b27-4c12-ba7a-9b4c124dfc3c"
      decimals="-5"
      id="F_75567c85-cd62-4b5f-8563-cb8163cf696b"
      unitRef="U_USD">900000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_2d0e7aa2-c977-4c3a-8580-9cb5f4eda74e"
      decimals="-5"
      id="F_823a61f2-097d-4d94-b3df-bb503367acc8"
      unitRef="U_USD">900000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_d19190f9-f8d5-49fa-9532-9a2fbde8b569"
      unitRef="U_USD">3100000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_dd96b33e-e8d7-4f20-8dad-4b9fa7948909">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 8: Stock-Based Compensation&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.155%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cost of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;253&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;541&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;502&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;498&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,979&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,403&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,723&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,698&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,329&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,595&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,624&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024, there was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;29.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;2.3&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; years.&lt;/span&gt;&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_ceaee36e-09ca-459e-ac2c-9cb85d955933">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.155%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.161%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.93%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cost of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;253&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;541&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;502&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;498&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,979&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;997&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,403&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d4e5f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="background-color:#d5e6f7;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,723&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,698&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,329&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d4e5f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,595&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:line-through;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,624&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_6f112919-07fd-4967-b68e-a8cbf59c731f"
      decimals="-3"
      id="F_89e67cc9-4172-4510-bc4d-dbf719b68fed"
      unitRef="U_USD">281000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_77602efe-4a7c-492a-be74-f673570eb250"
      decimals="-3"
      id="F_633dc41c-717f-4a98-8e98-ebe8dc713acd"
      unitRef="U_USD">253000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_69edfdd7-0a0d-4914-9d6d-9d8ae399542c"
      decimals="-3"
      id="F_7a219221-b028-44ac-886d-1d8088262559"
      unitRef="U_USD">541000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c0bf0121-9b2a-436c-bb6a-a706f283568e"
      decimals="-3"
      id="F_c07588c4-02c7-4832-831e-b15308db85b2"
      unitRef="U_USD">502000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_d0aa6afb-5424-47d6-8c57-51f531588c3f"
      decimals="-3"
      id="F_0fe430d2-a251-4c69-bbfc-789a5ca3ea81"
      unitRef="U_USD">1000000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_213d6e40-df68-49ff-86a8-7ba47f81da89"
      decimals="-3"
      id="F_864e5f06-fb29-4280-890f-7efa1e23569e"
      unitRef="U_USD">498000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_b991c8b4-9f89-41e6-a295-3d2f682a896e"
      decimals="-3"
      id="F_b206027d-43ef-4eec-9f07-1045e50c826a"
      unitRef="U_USD">1979000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_38ebbb41-fa1a-496a-ac23-c8002747b4a0"
      decimals="-3"
      id="F_64d40859-272e-4852-8ade-849b4fc463bd"
      unitRef="U_USD">997000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_f60f1e40-9a6a-4872-bc38-e5d122609bf6"
      decimals="-3"
      id="F_2674c590-b182-4087-8fae-485e8f3eb637"
      unitRef="U_USD">1403000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_2a9ca0c3-9be9-4ba2-a355-51dbe6f30ed2"
      decimals="-3"
      id="F_cbcb5c33-d72f-4e43-9db6-4f16ac645761"
      unitRef="U_USD">1150000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_26af025e-1ef9-405a-b00c-86f77fa8f355"
      decimals="-3"
      id="F_36959d16-5ef4-4d50-9b80-3c9c19d99ca0"
      unitRef="U_USD">2740000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_af7882e2-ac80-4cae-8f3c-37a83dd5b2ac"
      decimals="-3"
      id="F_acbea3a8-3275-4c15-8acd-5e197c9134dd"
      unitRef="U_USD">2296000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_7f6d8ba2-4aec-4f5d-a953-1ba17c0c0876"
      decimals="-3"
      id="F_3edf07e6-56ed-4468-94bc-6145d2c5d2bf"
      unitRef="U_USD">1911000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_fd2bca62-627b-4224-a093-65b115769150"
      decimals="-3"
      id="F_e9662021-3370-46ce-9a29-fa3dc2780081"
      unitRef="U_USD">1723000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_fb246d1a-98c3-410d-9b4c-792f4f501248"
      decimals="-3"
      id="F_438ed231-1669-4e46-aff6-69ce4d3e781f"
      unitRef="U_USD">3698000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_8aa8ea4b-29fe-450c-afcc-b223ab3cf9fa"
      decimals="-3"
      id="F_579dcacd-a1df-4e47-b4bc-718936a8fb2b"
      unitRef="U_USD">3329000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_8b2d54d3-dac5-468f-8099-81995cf74a1f"
      unitRef="U_USD">4595000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_655a2f38-6c24-4c83-b589-4c2092129145"
      unitRef="U_USD">3624000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_151fdd78-d053-41ea-80e8-9ecf93ab62a2"
      unitRef="U_USD">8958000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_fe18a795-e098-4c75-96ba-e92e629170c7"
      unitRef="U_USD">7124000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_cba00be3-9f1d-4459-9baa-08126c8af22d"
      unitRef="U_USD">29000000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_f6a24ad0-8219-4352-82d7-710211f238ca">P2Y3M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_4181c37b-86d5-4308-be41-b8cfff8389d6">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 9: Income Taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company recorded an income tax provision of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million during the three and six months ended July 31, 2024, and an income tax provision of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million during the three and six months ended July 31, 2023, respectively. The income tax provision recorded in the first half of fiscal 2025 and the first half of fiscal 2024 were primarily attributable to state income taxes. As of July 31, 2024, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024, the Company had unrecognized tax benefits of approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; will significantly increase or decrease within the next twelve months. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; interest expense or penalties related to unrecognized tax benefits recorded through &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_d12e2cb3-39fa-4fe3-b078-a4a044b12f02"
      unitRef="U_USD">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_9d7541f8-be81-4fab-9fb5-98cc2010350b"
      unitRef="U_USD">800000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-5"
      id="F_c9ada173-02c5-4c9f-9016-9df4b30444c1"
      unitRef="U_USD">300000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_fc5ff02f-a47f-46b9-a038-4d9223e9e557"
      unitRef="U_USD">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_f6fa0f23-6cb3-4da7-a749-fb6445d78489"
      unitRef="U_USD">11400000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="INF"
      id="F_e00342c6-8716-467b-9d49-8b908fb0d969"
      unitRef="U_USD">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_ad05b373-5d2f-44cd-8218-c6cc19ce6578">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 10: Basic and Diluted Net (Loss) Income Per Share&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following table sets forth the computation of basic and diluted net loss and net income per share of common stock (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:43.794%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Numerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Net (loss) income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;271&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;55&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Basic weighted average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,330,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,327,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Potentially dilutive shares from equity plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;604,473&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:14pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Diluted weighted-average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,935,018&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,327,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Basic and diluted net (loss) income per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.01&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Potentially dilutive securities of approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the three and six months ended July 31, 2024, and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million for the six months ended July 31, 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#x2019;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_c334dd66-0afb-47bd-af53-9ff27885e2d6">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following table sets forth the computation of basic and diluted net loss and net income per share of common stock (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:43.794%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.279%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.493%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="5" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:middle;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Numerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Net (loss) income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;271&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;55&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Basic weighted average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,330,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:top;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,327,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Potentially dilutive shares from equity plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;604,473&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="text-indent:14pt;vertical-align:bottom;"&gt;&lt;p style="margin-left:14pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Diluted weighted-average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,935,018&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,327,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Basic and diluted net (loss) income per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.01&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-3"
      id="F_18f116e2-8e94-4e30-b488-287fe573ecad"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="-3"
      id="F_c8aa8766-b312-4722-9839-3fb36eb2bc06"
      unitRef="U_USD">271000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-3"
      id="F_01f8ea75-525b-4f57-94c2-ae71464c0b23"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-3"
      id="F_353cafba-c919-41c6-b68a-0f08cfb30876"
      unitRef="U_USD">-55000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="0"
      id="F_f991e155-bf84-49bc-ba5c-74af1f25c217"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="0"
      id="F_9b8a9af2-fec4-45bd-84d9-75700a217a1f"
      unitRef="U_shares">25330545</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="0"
      id="F_41bfa5ac-6412-4905-837d-900f79313eac"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="0"
      id="F_1dcc2744-4d47-48df-804a-70d9e9becd28"
      unitRef="U_shares">25327255</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="0"
      id="F_1a5d6ec0-c423-4a42-85fd-4c0506f7ca24"
      unitRef="U_shares">604473</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="0"
      id="F_b05b5389-834a-4e2a-ae73-f07db2f9dc08"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="0"
      id="F_8beb08be-38ad-4cdc-8ea9-6779cdb30179"
      unitRef="U_shares">25935018</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="0"
      id="F_335b0ec9-f295-4080-802c-dde122adb362"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="0"
      id="F_4abdf281-4468-4283-b92d-e7d1a0913817"
      unitRef="U_shares">25327255</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="2"
      id="F_0fe1a813-0828-4575-8fe2-bffed160a2ef"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="2"
      id="F_4b9fe108-b5a7-4cd6-a159-414330fceb2a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="2"
      id="F_94e66c16-cd4f-4d9a-ae31-e46b0182ffb0"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_f291fd8a-a1ba-4af2-8de4-61cfe67d32f6"
      decimals="2"
      id="F_9c4b5469-8bd6-4a2f-a190-2342a07bcfc3"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_4a333139-3fd7-4b6b-ab71-74983876e6e3"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="2"
      id="F_cda19602-313d-484b-807f-9ccbb8369845"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="2"
      id="F_c6b199d0-e7be-406a-a589-76e3d832ffa1"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="2"
      id="F_8d86651d-5479-4b77-b779-4edc6d550214"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      decimals="-5"
      id="F_3d936a58-127f-43f5-92e7-d09c68b74d49"
      unitRef="U_shares">300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      decimals="-5"
      id="F_8c97d3b6-ab4c-4559-9bfa-15d42a615b33"
      unitRef="U_shares">300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_38a4ce87-c736-4af3-8519-f9c82b0e74e6"
      decimals="-5"
      id="F_86e5c13d-4a6f-4c9d-b416-c40fb18ccb1f"
      unitRef="U_shares">600000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_19eaef6b-d19e-4e03-b1cf-773de1a1f500">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 11: Commitments and Contingencies&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Purchase Commitments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024 and January 31, 2024, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider that contains total minimum purchase commitments the Company is obligated to of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million between March 2024 and February 2029 and a non-cancelable service agreement with a cloud service provider that contains total annual minimum purchase commitments the Company is obligated to&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million between March 2024 and February 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Legal Proceedings&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees, the Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2024, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;the Company did &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;Canadian Litigation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#x2019;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#x201c;free&#x201d; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues, and the parties are awaiting the Court's ruling. The Company intends to continue to defend itself vigorously against this complaint. Based on the Company&#x2019;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from the Canadian Litigation is not estimable.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Indemnification&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#x2019;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:PurchaseObligation
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="-5"
      id="F_a0e23fb9-32d7-4f69-b412-864690e72203"
      unitRef="U_USD">5000000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation
      contextRef="C_34c6eb15-1f53-4587-93f0-e8e5ebd82c30"
      decimals="-5"
      id="F_5a23a7b5-8cb5-4807-9d52-d6d5ead1739a"
      unitRef="U_USD">1100000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation
      contextRef="C_597414ab-347e-4aac-a222-07895a42c130"
      decimals="-5"
      id="F_86dd4ae1-4ef4-4e1f-b856-9c745eb42486"
      unitRef="U_USD">11900000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligationDueInNextTwelveMonths
      contextRef="C_1f3b2012-e409-4348-9076-efc8fa2bd15c"
      decimals="-5"
      id="F_e8250f42-8ed7-4f32-b722-9be10f6891e0"
      unitRef="U_USD">1100000</us-gaap:PurchaseObligationDueInNextTwelveMonths>
    <us-gaap:LossContingencyAccrualAtCarryingValue
      contextRef="C_6c762824-ddef-45af-8d13-01a59896f092"
      decimals="INF"
      id="F_93096fc0-884e-419a-bd95-431318ae0d57"
      unitRef="U_USD">0</us-gaap:LossContingencyAccrualAtCarryingValue>
    <us-gaap:ShortTermDebtTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_4752b8a3-af29-4a4e-85c9-4aa523b65437">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 12:  Financing Arrangements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Revolving Credit Facility&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;October 20, 2023&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, the Company, as borrower, entered into a three-year credit and security agreement (&#x201c;Credit Agreement&#x201d;) with Citizens Bank N.A., as Administrative Agent (&#x201c;Agent&#x201d;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#x201c;Credit Facility&#x201d;) under which the Company may borrow up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;30.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, which includes a $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;50.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Loans under the Credit Agreement will bear interest, at the Company&#x2019;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#x2019;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#x2019;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;% and the Applicable Margin for the SOFR Loans is &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;% per annum.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In June 2024, the Company entered into an amendment to the Credit Agreement which amendment permits the Company to undertake open market repurchases of its equity interests not exceeding $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in the aggregate, subject to certain conditions.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;As of July 31, 2024, the Company had $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in outstanding borrowings, which are recorded as debt, net of current portion in the condensed consolidated balance sheets. The funds were used for the acquisition of 2600hz, Inc. at the Term SOFR interest rate of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;. The Company is in compliance with the covenants contained in the Credit Agreement as of July 31, 2024. Accordingly, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million of borrowing capacity was available for the purposes permitted by the Credit Agreement.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;January 8, 2021&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, the Company, as borrower, entered into a credit and security agreement (&#x201c;Key Bank Credit Agreement&#x201d;) with KeyBank National Association as Administrative Agent and lender, and KeyBanc Capital Markets Inc. as sole lead arranger and sole book runner. Prior to its termination as described below, the Key Bank Credit Agreement provided for a secured revolving credit facility under which the Company could have borrowed up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, which included a $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million sub-facility for letters of credit. The Company and its lenders were able to increase the total commitments under the credit facility to up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;45.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, subject to certain conditions. Permitted uses of funds borrowed under the Key Bank Credit Agreement included working capital and other general corporate purposes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The Company terminated the Key Bank Credit Agreement on June 7, 2023.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:ShortTermDebtTextBlock>
    <us-gaap:LineOfCreditFacilityDescription
      contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940"
      id="F_a8fb6e7f-0159-432c-acb5-e4a96541f557">On October 20, 2023, the Company, as borrower, entered into a three-year credit and security agreement (&#x201c;Credit Agreement&#x201d;) with Citizens Bank N.A., as Administrative Agent (&#x201c;Agent&#x201d;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#x201c;Credit Facility&#x201d;) under which the Company may borrow up to an aggregate amount of $30.0 million, which includes a $10.0 million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $50.0 million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</us-gaap:LineOfCreditFacilityDescription>
    <us-gaap:LineOfCreditFacilityInitiationDate1
      contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940"
      id="F_e7639e12-8031-4db7-a26b-a8dab8020cac">2023-10-20</us-gaap:LineOfCreditFacilityInitiationDate1>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_35b0e141-cb2d-4dff-9f8d-bbf7907cb2e2"
      decimals="INF"
      id="F_f23602d8-fe1a-46ce-aa34-fbe4021ad2f3"
      unitRef="U_USD">30000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_68320a32-ec74-4f41-b87e-f2dd9674bf3a"
      decimals="-5"
      id="F_2ee0b22b-ab0f-46b8-8c32-135ae08d6389"
      unitRef="U_USD">10000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="C_f0479a5b-5a38-497a-80ff-7791e3784b6c"
      decimals="INF"
      id="F_cfe09747-fe93-43a6-8420-fa4c68d95857"
      unitRef="U_USD">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDescription
      contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940"
      id="F_f76f17ea-b89d-4c3c-8b2a-5c697d7f8124">Loans under the Credit Agreement will bear interest, at the Company&#x2019;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#x2019;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#x2019;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is 1.25% and the Applicable Margin for the SOFR Loans is 2.00%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by 5.00%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of 0.25% per annum.</us-gaap:LineOfCreditFacilityInterestRateDescription>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="C_afad6cff-d187-4932-a282-738faa2ae81b"
      decimals="INF"
      id="F_0ee3415a-b6a2-4fcf-a5ea-374df2ca7d04"
      unitRef="U_pure">0.0125</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="C_fc42afea-8932-4b6a-a619-45b81296e3ff"
      decimals="4"
      id="F_d5104b2c-ea6f-4843-a666-291c69e71beb"
      unitRef="U_pure">0.02</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateIncreaseDecrease
      contextRef="C_27014afa-2df6-436a-927d-2e223edddefd"
      decimals="4"
      id="F_9b052e69-88f5-44a0-855e-dc195ad65346"
      unitRef="U_pure">0.05</us-gaap:DebtInstrumentInterestRateIncreaseDecrease>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="C_8c1da4ef-0cbb-42a1-8223-32033f472940"
      decimals="4"
      id="F_db1cf775-3766-48c7-8b1a-533ea15a823f"
      unitRef="U_pure">0.0025</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <ooma:MaximumOpenMarketRepurchasesOfEquityInterests
      contextRef="C_5f347f22-26b2-4844-8e1b-763ae3f05973"
      decimals="INF"
      id="F_29ca1057-0b20-4aee-9b7e-bf92ff7f6f07"
      unitRef="U_USD">6000000</ooma:MaximumOpenMarketRepurchasesOfEquityInterests>
    <us-gaap:LineOfCreditFacilityAverageOutstandingAmount
      contextRef="C_78b87d2b-cf13-4d7a-894e-3578766e98fc"
      decimals="-5"
      id="F_5da4f501-2320-44eb-83d6-bb6b423d949b"
      unitRef="U_USD">8500000</us-gaap:LineOfCreditFacilityAverageOutstandingAmount>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_78b87d2b-cf13-4d7a-894e-3578766e98fc"
      decimals="3"
      id="F_dd7d8c20-9eb5-48dc-90d5-ca01ec00964d"
      unitRef="U_pure">0.074</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="C_f0479a5b-5a38-497a-80ff-7791e3784b6c"
      decimals="-5"
      id="F_9699804d-354b-4961-8da5-38376ce2ad4f"
      unitRef="U_USD">21500000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityDescription
      contextRef="C_d165fd73-7871-4572-b165-fa00b038d5de"
      id="F_777f9058-319e-467b-ba57-cd5ae9a9fc3c">On January 8, 2021, the Company, as borrower, entered into a credit and security agreement (&#x201c;Key Bank Credit Agreement&#x201d;) with KeyBank National Association as Administrative Agent and lender, and KeyBanc Capital Markets Inc. as sole lead arranger and sole book runner. Prior to its termination as described below, the Key Bank Credit Agreement provided for a secured revolving credit facility under which the Company could have borrowed up to an aggregate amount of $25.0 million, which included a $10.0 million sub-facility for letters of credit. The Company and its lenders were able to increase the total commitments under the credit facility to up to an aggregate amount of $45.0 million, subject to certain conditions. Permitted uses of funds borrowed under the Key Bank Credit Agreement included working capital and other general corporate purposes.</us-gaap:LineOfCreditFacilityDescription>
    <us-gaap:LineOfCreditFacilityInitiationDate1
      contextRef="C_d165fd73-7871-4572-b165-fa00b038d5de"
      id="F_dae16a76-f9f9-44a0-82fd-8f60302182e4">2021-01-08</us-gaap:LineOfCreditFacilityInitiationDate1>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_968a6f21-78a7-4f49-b4b6-805f7283fa07"
      decimals="-5"
      id="F_0090e324-9d6a-4dca-8ce4-08774989d46f"
      unitRef="U_USD">25000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_ff320936-ff72-4b90-b0ec-8cace249bfac"
      decimals="-5"
      id="F_b38ccf4d-0ee6-4564-a525-71e546a2456c"
      unitRef="U_USD">10000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="C_1623ddf1-043e-4b92-92f6-72c1c7519ef9"
      decimals="-5"
      id="F_5eb17855-8a4f-4bec-beb3-cf41dc4afd8f"
      unitRef="U_USD">45000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock
      contextRef="C_c9cbb3ba-fde7-4f1d-87bf-ec3169aeb775"
      id="F_6fe1d160-d9b0-4382-88ff-e4ecbaa88fc0">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;min-width:fit-content;"&gt;Note 13: Business Acquisition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On October 20, 2023, the Company acquired all outstanding stock of 2600hz, Inc. ("2600Hz"), a provider of business communications applications targeted at resellers and carriers. The Company acquired 2600Hz for total cash consideration of approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;32.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million (net of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million in cash acquired), subject to certain working capital adjustments. The acquisition did &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;t have any contingency related payments.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following table summarizes the final purchase price allocation, as adjusted (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:74.5%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.96%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:19.18%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Fair Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,829&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;588&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Property plant and equipment, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;195&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Accounts payable and other liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,487&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total purchase consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,048&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Intangible assets acquired primarily consisted of developed technology of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million, which represented the fair values of the acquired 2600Hz developed platform technology and have an estimated useful life of seven years as of the date of acquisition. The goodwill recognized was primarily attributable to the assembled workforce and is not expected to be deductible for income tax purposes.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;In connection with the acquisition, the Company agreed to issue approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;423,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; restricted stock units that are subject to on-going service conditions and vest over an &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;18-month&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; period. The fair value of these awards of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; is being recorded as stock compensation expense over the service period.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;During the second fiscal quarter of 2023, the Company acquired OnSIP for $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;six months ended July 31, 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, the Company received $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; million from the seller for certain working capital adjustments, which is recorded in investing activities in the Company's condensed consolidated statements of cash flows.&lt;/span&gt;&lt;/p&gt;</ooma:BusinessAcquisitionsAndDivestituresDisclosureTextBlock>
    <ooma:PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments
      contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9"
      decimals="-5"
      id="F_51405248-87fa-4724-8c06-341c84c417f5"
      unitRef="U_USD">32200000</ooma:PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9"
      decimals="-5"
      id="F_b5cbfc4b-c622-407a-9614-34af77e32a65"
      unitRef="U_USD">1800000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities
      contextRef="C_7f80baaa-7364-4cc0-a255-5c65700c53d9"
      decimals="INF"
      id="F_92627e6a-1699-49d8-a774-b391c9385cfb"
      unitRef="U_USD">0</us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities>
    <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock
      contextRef="C_cbe4c152-825f-4c5d-b586-12b9642ccee3"
      id="F_96b6d984-f165-45e2-9344-7b4e470bf2bd">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;The following table summarizes the final purchase price allocation, as adjusted (in thousands):&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:74.5%;"&gt;&lt;/td&gt;
        &lt;td style="width:2.36%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.96%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:19.18%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="3" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;min-width:fit-content;"&gt;Fair Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,829&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;588&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Property plant and equipment, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;195&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;21,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Accounts payable and other liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,487&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Deferred tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-family:Arial;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;"&gt;
        &lt;td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:7pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;Total purchase consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,048&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_7e04670c-f189-4524-a59c-96aabee9d527"
      unitRef="U_USD">1829000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_739fc581-f39c-40d8-92b2-6c2d10612f12"
      unitRef="U_USD">440000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_1c55b06c-9e7a-400f-8a80-c47ae4e4b536"
      unitRef="U_USD">588000</ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNonCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_daab3bfd-02ee-4d95-a034-21932067611d"
      unitRef="U_USD">195000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_1df4c629-68ee-47f9-b0c1-96dacc31fbf5"
      unitRef="U_USD">21200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:GoodwillGross
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_76d24924-72f1-4d14-8657-b4fa627f649d"
      unitRef="U_USD">14414000</us-gaap:GoodwillGross>
    <ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_d1746440-5c97-4e43-822b-c2cff42311a7"
      unitRef="U_USD">1487000</ooma:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_27db8eb3-9ea3-4fa1-b18c-e911af79fd17"
      unitRef="U_USD">3131000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="C_7c0f4b33-27e5-4787-9dc5-7576e78211db"
      decimals="-3"
      id="F_019a04c4-db88-4fb8-94e4-5799e9fd7d02"
      unitRef="U_USD">34048000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="C_8681facc-dffb-4541-baff-6d6202549110"
      decimals="-5"
      id="F_87c71209-4cca-4cc9-af38-9f482cc29b0f"
      unitRef="U_USD">18400000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued
      contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b"
      decimals="INF"
      id="F_d1235d21-15bd-403e-b514-c75845e3da97"
      unitRef="U_shares">423000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b"
      id="F_a6433551-3b48-4cea-975b-8c5d524c5999">P18M</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_bcba4f21-810b-4544-8f85-4bdafb6ffc3b"
      decimals="-5"
      id="F_3596853a-cf3f-457e-b357-2266c4e44b5d"
      unitRef="U_USD">4300000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="C_71a65c70-38e3-4287-87d9-dfeedfd7069b"
      decimals="-5"
      id="F_aacad359-4208-4071-96f0-9b477c67afb2"
      unitRef="U_USD">9500000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="C_bada150e-1804-484b-a975-897a4e02ba88"
      decimals="-5"
      id="F_894eb5da-c6d4-4f70-bb9a-9d7a9ecaa3ce"
      unitRef="U_USD">300000</ooma:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <ecd:MtrlTermsOfTrdArrTextBlock
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      id="F_64644697-f70b-4ec4-876e-1bbe78d5e0df">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;min-width:fit-content;"&gt;Insider Adoption or Termination of Trading Arrangements&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;On &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;June 27, 2024&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;James A. Gustke&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, our &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;Senior Vice President&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, Marketing, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;adopted&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; a Rule 10b5-1 Trading Arrangement (as that term is defined in Regulation S-K, Item 408) providing for the sale from time to time of up to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;18,656&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; shares of our common stock. The trading arrangement is intended to satisfy the affirmative defense in Rule 10b5-1(c). The duration of the trading arrangement is until &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;September 27, 2025&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;, or earlier if all transactions under the trading arrangement are completed.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;No other directors or officers, as defined in Rule 16a-1(f), &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;adopted&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; and/or &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;terminated&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt; a &#x201c;Rule 10b5-1 trading arrangement&#x201d; or a &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; each as defined in Regulation S-K Item 408, during the fiscal quarter ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/p&gt;</ecd:MtrlTermsOfTrdArrTextBlock>
    <ecd:TrdArrAdoptionDate
      contextRef="C_619e96e0-c484-4410-8010-213587e77064"
      id="F_780b5ea1-4dcd-4e47-bc5d-70883cb1fae3">June 27, 2024</ecd:TrdArrAdoptionDate>
    <ecd:TrdArrIndName
      contextRef="C_619e96e0-c484-4410-8010-213587e77064"
      id="F_d1664b6e-5332-47e6-9def-98c39ecccbc2">James A. Gustke</ecd:TrdArrIndName>
    <ecd:TrdArrIndTitle
      contextRef="C_619e96e0-c484-4410-8010-213587e77064"
      id="F_751b4257-b23f-4c45-a74f-f2835110ae87">Senior Vice President</ecd:TrdArrIndTitle>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="C_619e96e0-c484-4410-8010-213587e77064"
      id="F_9c7a8a0a-a687-48de-9f5d-ff942eca42cd">true</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:TrdArrSecuritiesAggAvailAmt
      contextRef="C_b35fb8e0-a38a-46b5-846a-1cdd5a49abf5"
      decimals="0"
      id="F_553b5d71-5e50-46a3-a021-0209bcfbbd48"
      unitRef="U_shares">18656</ecd:TrdArrSecuritiesAggAvailAmt>
    <ecd:TrdArrExpirationDate
      contextRef="C_619e96e0-c484-4410-8010-213587e77064"
      id="F_e655f13a-d593-42dc-ac09-ad07309133d7">September 27, 2025</ecd:TrdArrExpirationDate>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      id="F_1934beee-52c0-411f-ad94-13a6ffd255e8">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      id="F_aba165a4-e19d-4643-b1d4-0b4710b89e60">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      id="F_31f71b7b-1616-45f3-8c72-f3bfadfe4e37">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="C_9ddcc391-f797-4319-bae0-ab23cff3ccff"
      id="F_8ada3582-e053-4ed7-9486-ce363f26e8a1">false</ecd:NonRule10b51ArrTrmntdFlag>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#F_f157cd43-3b57-4488-b768-67b1d0f09d01"
          xlink:label="F_f157cd43-3b57-4488-b768-67b1d0f09d01"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_cdd7a789-5013-4240-a53c-f29691df1e49"
          xlink:label="F_cdd7a789-5013-4240-a53c-f29691df1e49"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_fa789cd7-9676-4b25-9f0c-604a4ac5695f"
          xlink:label="F_fa789cd7-9676-4b25-9f0c-604a4ac5695f"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61"
          xlink:label="F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6"
          xlink:label="F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_a0180243-6949-4df7-8356-51b5228517a7"
          xlink:label="F_a0180243-6949-4df7-8356-51b5228517a7"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_2332af69-1803-4f12-9b80-76be6faa6679"
          xlink:label="F_2332af69-1803-4f12-9b80-76be6faa6679"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_3e37df84-2351-4c02-8279-b981578905bd"
          xlink:label="F_3e37df84-2351-4c02-8279-b981578905bd"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_6421daa6-2960-47d6-a9bc-55d504bd91db"
          xlink:label="F_6421daa6-2960-47d6-a9bc-55d504bd91db"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2"
          xlink:label="F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_74df9102-1ee2-42eb-a646-12e8c13d0e2f"
          xlink:label="F_74df9102-1ee2-42eb-a646-12e8c13d0e2f"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_331236f8-3e1d-47bc-af95-3ac36c82ed62"
          xlink:label="F_331236f8-3e1d-47bc-af95-3ac36c82ed62"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_c96b052f-590a-43e8-94b7-cef3ddb15edd"
          xlink:label="F_c96b052f-590a-43e8-94b7-cef3ddb15edd"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_13b54e13-4f1c-4681-8596-38b50f30c98a"
          xlink:label="F_13b54e13-4f1c-4681-8596-38b50f30c98a"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_269afa3d-6d0e-460f-a875-ff85c603d317"
          xlink:label="F_269afa3d-6d0e-460f-a875-ff85c603d317"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d"
          xlink:label="F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_c1a07101-3ee3-48cb-9810-c3367b92c1d8"
          xlink:label="F_c1a07101-3ee3-48cb-9810-c3367b92c1d8"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5"
          xlink:label="F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248"
          xlink:label="F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248"
          xlink:type="locator"/>
        <link:footnote id="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xlink:label="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Additional paid-in capital</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f157cd43-3b57-4488-b768-67b1d0f09d01"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_cdd7a789-5013-4240-a53c-f29691df1e49"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_fa789cd7-9676-4b25-9f0c-604a4ac5695f"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_ea6a8f01-7d2e-4dba-b3c2-fa8ebd414c61"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_86ea5a82-27c7-4e1d-a1ea-0734b33592d6"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_a0180243-6949-4df7-8356-51b5228517a7"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_2332af69-1803-4f12-9b80-76be6faa6679"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_3e37df84-2351-4c02-8279-b981578905bd"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_6421daa6-2960-47d6-a9bc-55d504bd91db"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f8b3b9b6-d39c-4d0a-92e1-e052cdd9a0c2"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_74df9102-1ee2-42eb-a646-12e8c13d0e2f"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_331236f8-3e1d-47bc-af95-3ac36c82ed62"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_c96b052f-590a-43e8-94b7-cef3ddb15edd"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_13b54e13-4f1c-4681-8596-38b50f30c98a"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_269afa3d-6d0e-460f-a875-ff85c603d317"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_68f8d49f-0f34-46e9-b7a7-b7f053a4fe0d"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_c1a07101-3ee3-48cb-9810-c3367b92c1d8"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_4eefaa0b-b06b-4ae7-b627-61a182d4a9a5"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_ddcab1c4-e24c-4c8a-9e4a-6674ebacd248"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#F_0041b266-6d00-4aa1-82d4-1e94ca7589e4"
          xlink:label="F_0041b266-6d00-4aa1-82d4-1e94ca7589e4"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_02f3002c-57f0-480c-9212-43946ae6f564"
          xlink:label="F_02f3002c-57f0-480c-9212-43946ae6f564"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_f217e5dd-7930-4dbc-b022-97b6c798a143"
          xlink:label="F_f217e5dd-7930-4dbc-b022-97b6c798a143"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_a4807772-e2dc-4b20-82fd-160935e09e79"
          xlink:label="F_a4807772-e2dc-4b20-82fd-160935e09e79"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_b4b1fffe-05e5-4d42-a196-06081764438c"
          xlink:label="F_b4b1fffe-05e5-4d42-a196-06081764438c"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_487f8fcf-450c-478b-b6ad-55c4c8f56547"
          xlink:label="F_487f8fcf-450c-478b-b6ad-55c4c8f56547"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb"
          xlink:label="F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_cf63ad53-9b75-4285-bddf-cbb69889d719"
          xlink:label="F_cf63ad53-9b75-4285-bddf-cbb69889d719"
          xlink:type="locator"/>
        <link:footnote id="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xlink:label="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;min-width:fit-content;">Accumulated other comprehensive loss</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_0041b266-6d00-4aa1-82d4-1e94ca7589e4"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_02f3002c-57f0-480c-9212-43946ae6f564"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f217e5dd-7930-4dbc-b022-97b6c798a143"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_a4807772-e2dc-4b20-82fd-160935e09e79"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_b4b1fffe-05e5-4d42-a196-06081764438c"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_487f8fcf-450c-478b-b6ad-55c4c8f56547"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_b93e76c8-19ad-43c4-8a2b-cf5fb6d955cb"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_cf63ad53-9b75-4285-bddf-cbb69889d719"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
