{"id":870395,"date":"2025-08-04T19:20:14","date_gmt":"2025-08-04T23:20:14","guid":{"rendered":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/"},"modified":"2025-08-04T19:20:14","modified_gmt":"2025-08-04T23:20:14","slug":"ufp-technologies-announces-record-q2-results","status":"publish","type":"post","link":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/","title":{"rendered":"UFP Technologies Announces Record Q2 Results"},"content":{"rendered":"<div class=\"mw_release\">\n<p align=\"start\">NEWBURYPORT, Mass., Aug.  04, 2025  (GLOBE NEWSWIRE) &#8212; <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=BBmOhAQIzPempHGugoD62Kd1pdXFz8R30dFgmDBZOcPNSu_tUcqwbczvLFBVd5bpatX_wX1hr4NKGGQNKAXFwDLW0rtzNprLSruo2HE7DPs=\" rel=\"nofollow\" target=\"_blank\">UFP Technologies, Inc.<\/a> (Nasdaq: UFPT), a contract development and manufacturing organization that specializes in single-use and single-patient medical devices, today reported net income of $17.2 million or $2.21 per diluted common share outstanding for its second quarter ended June\u00a030, 2025, compared to net income of $13.6 million or $1.75 per diluted common share outstanding for the same quarter in 2024. Adjusted earnings per diluted common share outstanding grew 27% to $2.50. Sales for the second quarter were $151.2 million compared to sales of $110.2\u00a0million in the second quarter of 2024. Net income for the six-month period ended June 30, 2025, was $34.4 million or $4.42 per diluted common share outstanding compared to net income of $26.2 million or $3.38 per diluted common share outstanding for the same period in 2024. Sales for the six-month period ended June 30, 2025, were $299.3 million compared to sales of $215.2\u00a0million for the same period in 2024. Throughout this news release, reference is made to non-GAAP measures including organic sales growth, adjusted operating income, adjusted SG&amp;A, adjusted net income and EPS, and EBITDA and adjusted EBITDA. Please see \u201cNon-GAAP Financial Information\u201d at the end of this news release.<\/p>\n<p align=\"start\">\u201cI am very pleased with our Q2 results,\u201d said R. Jeffrey Bailly, Chairman &amp; CEO. \u201cSales grew 37%, driven by strong contributions from our 2024 acquisitions combined with 5% organic growth. Our MedTech business grew 46% while our Advanced Components business declined 20%. Adjusted operating income and adjusted net income grew 35% and 27%, respectively. Gross margins were 28.8% despite being impacted by approximately $1.2 million in incremental labor costs at our AJR facility. This was due to recent turnover in the workforce related to our post-acquisition review of US employment eligibility through E-Verify protocols. We have successfully recruited legally eligible replacement associates and anticipate that Q3 will be the low point of labor inefficiencies, with gradual improvement beginning in the fourth quarter.\u201d<\/p>\n<p align=\"start\">\u201cWe completed two acquisitions during our second quarter: Universal Plastics &amp; Engineering (UNIPEC) and Techno Plastics Industries (TPI),\u201d said Bailly. These will expand our capabilities in tight-tolerance specialty film components and in thermoplastic molding for the medical device market. In addition, we continued to make progress with our expansion plans in Santiago and La Romana, Dominican Republic, to accommodate further anticipated growth in the safe patient handling and robotic-assisted surgery markets.\u201d<\/p>\n<p align=\"start\">\u201cOur pipeline of new growth opportunities\u2014both internal and via acquisition\u2014is strong and growing,\u201d Bailly said. \u201cFor these reasons and more, we remain excited about our future.\u201d<\/p>\n<p align=\"start\">\n        <u>Financial Highlights for Q<\/u><br \/>\n        <u>2 and YTD<\/u><br \/>\n        <u> 202<\/u><br \/>\n        <u>5<\/u>\n      <\/p>\n<ul type=\"disc\">\n<li>Sales for the second quarter increased 37.2% to $151.2 million, from $110.2 million in the same period of 2024. Year-to-date sales through June increased 39.1% to $299.3 million, from $215.2 million in the same period of 2024. Organic sales growth for the three- and six-month periods ended June 30, 2025, was 4.9% and 3.6%, respectively.<\/li>\n<li>Second-quarter sales to the medical market increased 46.0% to $139.3 million. Non-medical sales decreased 19.8% to $11.8 million. For the six-month period ended June 30, 2025, sales to the medical market increased 48.2% to $274.7 million. Non-medical sales decreased 17.3% to $24.6 million.<\/li>\n<li>Gross profit as a percentage of sales (\u201cgross margin\u201d) decreased to 28.8% for the second quarter of 2025, from 30.0% in the same quarter of 2024. Gross margin for the six-month period ended June 30, 2024, decreased to 28.6% from 29.3% in the same period of 2024.<\/li>\n<li>Selling, general and administrative expenses (\u201cSG&amp;A\u201d) for the second quarter increased 34.4% to $18.7 million in 2025 compared to $13.9 million in the same quarter of 2024. As a percentage of sales, SG&amp;A decreased to 12.4% in the second quarter of 2025, from 12.6% in the same period of 2024. For the six-month period ended June 30, 2025, SG&amp;A increased 34.5% to $37.4 million from $27.8 million in the same period of 2024. As a percentage of sales, SG&amp;A in the six-month period ended June 30, 2025, decreased to 12.5% from 12.9% in the same period of 2024. As a percentage of sales, adjusted SG&amp;A decreased to 10.8% and 10.9% for the three- and six-month periods ended June 30, 2025, respectively, from 11.6% and 11.9%, respectively in the same periods of 2024.<\/li>\n<li>For the second quarter, operating income increased to $24.3 million, from $18.0 million in the same quarter of 2024. Adjusted operating income for the second quarter increased 34.8% to $27.3 million from $20.2 million in the second quarter of 2024. For the six-month period ended June 30, 2025, operating income increased to $47.5 million from $33.9\u00a0million in the same period of 2024. Adjusted operating income for the six-month period ended June 30, 2025, increased 41.6% to $53.1 million from $37.5 million in the same period of 2024.<\/li>\n<li>Net income increased to $17.2 million in the second quarter of 2025, from $13.6 million in the same period of\u00a02024. Adjusted net income increased to $19.4 million in the second quarter of 2025, from $15.3 million in the same period of 2024. For the six-month period ended June 30, 2025, net income increased to $34.4 million, from $26.2\u00a0million in the same period of 2024. Adjusted net income increased to $38.6 million for the six-month period ended June 30, 2025, from $29.0 in the same period of 2024.<\/li>\n<li>Adjusted EBITDA for the second quarter increased 33.2% to $31.8 million from $23.9 million in the second quarter of 2025. Adjusted EBITDA for the six-month period ended June 30, 2025, increased 39.1% to $62.1 million from $44.6 million in the same period of 2024.<\/li>\n<\/ul>\n<p align=\"justify\">\n        <strong>About UFP Technologies, Inc. <\/strong>\n      <\/p>\n<p align=\"justify\">UFP Technologies is a contract development and manufacturing organization that specializes in single-use and single-patient medical devices. UFP is a vital link in the medical device supply chain and a valued outsourcing partner to many of the world&#8217;s top medical device manufacturers. The Company\u2019s single-use and single-patient devices and components are used in a wide range of medical devices and packaging for minimally invasive surgery, infection prevention, wound care, wearables, orthopedic soft goods, and orthopedic implants.<\/p>\n<p align=\"justify\">Contact: <br \/>Ron Lataille <br \/>978-234-0926<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Consolidated Condensed Statements of Income<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands, except per share data<em>)<\/em><\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(Unaudited)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:49%;width:49%;min-width:49%;vertical-align: middle\">Net sales<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 151,176<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 110,177<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 299,324<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 215,186<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Cost of sales<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">107,633<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">77,146<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">213,629<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">152,072<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Gross profit<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">43,543<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">33,031<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">85,695<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">63,114<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">SG&amp;A<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">18,679<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">13,900<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">37,405<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">27,812<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Acquisition costs<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">283<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">943<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">320<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">943<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Change in fair value of contingent consideration<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">263<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">238<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">526<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">476<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">(Gain) loss on disposal of fixed assets<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(11)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(1)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(11)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">7<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Operating income<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">24,329<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">17,951<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">47,455<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">33,876<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Interest expense, net<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,671<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">577<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,480<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,208<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Other expense (income)<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">32<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">68<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(39)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Income before income taxes<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">21,626<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">17,372<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">41,907<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">32,707<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Income taxes<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">4,446<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">3,820<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">7,543<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">6,462<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Net income<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 17,180<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13,552<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34,364<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26,245<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;text-align: left;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Net income per share<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.23<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.77<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4.46<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3.43<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Net income per diluted share<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.21<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.75<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4.42<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3.38<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <em>\u00a0<\/em>\n          <\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Weighted average common shares outstanding<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,709<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,672<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,698<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,662<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Weighted average diluted common shares outstanding<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,773<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,753<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,783<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,756<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"6\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Consolidated Condensed Balance Sheets<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"6\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"6\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(Unaudited)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,\u00a0<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Assets:<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Cash and cash equivalents<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:19%;width:19%;min-width:19%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 14,892<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:19%;width:19%;min-width:19%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13,450<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Receivables, net<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 84,931<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 84,677<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Inventories<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 85,200<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 87,536<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Other current assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6,367<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9,282<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Net property, plant, and equipment<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 73,917<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 70,564<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Goodwill<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 192,968<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 189,657<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Intangible assets, net<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 141,974<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 144,252<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Other assets<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34,410<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 29,577<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 30.0px;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0 \u00a0 \u00a0 \u00a0 Total assets<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 634,659<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 628,995<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Liabilities and equity:<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Accounts payable<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 22,666<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 24,269<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Current installments, net of long-term debt<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 12,500<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 12,500<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Other current liabilities<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34,029<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 39,526<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Long-term debt, excluding current installments<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 151,125<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 176,875<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px\">Other liabilities<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 28,848<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 33,065<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 30.0px;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0 \u00a0 \u00a0 \u00a0 Total liabilities<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 249,168<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 286,235<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 30.0px;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0 \u00a0 \u00a0 \u00a0 Total equity<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 385,491<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 342,760<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 30.0px;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0 \u00a0 \u00a0 \u00a0 Total liabilities and stockholders&#8217; equity<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 634,659<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 628,995<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"left\">\n        <strong>Conference Call<\/strong>\n      <\/p>\n<p align=\"justify\">The Company has scheduled a conference call on Tuesday, August 5, 2025, at 8:30 AM Eastern time. Participants may join the call using the following dial-in numbers:<\/p>\n<ul type=\"disc\">\n<li>Toll-Free: 1-888-243-4451<\/li>\n<li>International: 1-412-542-4135<\/li>\n<\/ul>\n<p align=\"justify\">A live webcast of the conference call and accompanying materials will be available at\u00a0<a href=\"https:\/\/www.globenewswire.com\/Tracker?data=ADF_JVi1q0IswbSJ7CpGHT1sFRQuD-E9n2vNef69GrZ2wg21U_bJNaGWOFwKwoI2HRw5KSeQ_pPGO7RJ9qxcWXVHSkvZogMBsL-evzlWLKNVCSudsVyXX8KJF_ZpTRP13GP0xXE4pfanOqBmj2lnjW926RTtG-siXGVFeLv9qTeQveQCiDnEqRCJ0FFGM9c08P-gzSOsTv_PxlE9sFqKnBQvpaWLvy3llenG-4cgObE5gkCjrOJhPHkDPi9j_WHca2KGfvQrlKhmSmEFySzNb4acwz90_hPFTTrJbhmBLYV29FE6sIGYHOqFfH50EsEN\" rel=\"nofollow\" target=\"_blank\">www.ufpt.com<\/a>. <br \/> A replay of the webcast will be accessible following the event on the Company\u2019s Investor Relations website at\u00a0<a href=\"https:\/\/www.globenewswire.com\/Tracker?data=E26y-BVd3UsFnGtuROs5psLLPAu3FiCAVl8Y9jqCTTYr0mbCoeFej2-3_9Qjn08UES4u5AlKI-TdsWAtS6oX2Y3UeApm2-6mFNS2XIy7ZSUPx9GyZitMDiGYvb5K6d5blUxtBoh6apho1278SxBwLu7nOqukZTJYf4sVyKprdUv1OzPUl3tc-KXQ4oAXak5dHkYh-O4XiME2NFe3-37BswYXDz3QpfB4eynmt6wCsvi8KFoISWfrEgbRws9jfVxZJoHL29iJWgvDOUVUEA4xPtg7QSJJKmD3Ey7bbtnVxUAG9a34rR03-6KG2FO20xUb\" rel=\"nofollow\" target=\"_blank\">https:\/\/ufpt.com\/investors\/<\/a>.<\/p>\n<p align=\"start\">\n        <strong>Forward-Looking Statements<\/strong>\n      <\/p>\n<p align=\"justify\">Certain statements in this press release may be considered \u201cforward-looking statements\u201d within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934. Forward-looking statements generally relate to future events or the Company\u2019s future financial or operating performance and may be identified by words such as \u201cmay,\u201d \u201cshould,\u201d \u201cexpect,\u201d \u201cintend,\u201d \u201cwill,\u201d \u201cestimate,\u201d \u201canticipate,\u201d \u201cbelieve,\u201d \u201cpredict,\u201d or similar words. Such statements include, but are not limited to, statements about the Company\u2019s future financial or operating performance; statements of the Company\u2019s position in the marketplace; statements about the Company\u2019s acquisition strategies and opportunities and the Company\u2019s growth potential and strategies for growth; statements about the integration and performance of recent acquisitions, including that such acquisitions will be accretive to the Company\u2019s revenue, income and EBITDA; statements about the Company\u2019s ability to realize the benefits expected from our pipeline of acquisition opportunities and recently completed acquisitions, including any related synergies; expectations regarding customer demand; and any indication that the Company may be able to sustain or increase its sales, earnings or earnings per share, or its sales, earnings or earnings per share growth rates. Such forward-looking statements are based upon assumptions made by the Company as of the date hereof and are subject to risks, uncertainties, and other factors that could cause actual results to differ materially from those expressed or implied by such forward-looking statements. Factors that may cause actual results to differ materially from current expectations include, but are not limited to: the Company&#8217;s general ability to execute its business plans; industry conditions, including fluctuations in supply, demand and prices for the Company&#8217;s products and services due to inflation or otherwise; risks associated with governmental regulations and\/or sanctions affecting the import and export of products, including global trade barriers, additional taxes, tariff increases, cash repatriation restrictions, retaliations and boycotts between the U.S. and other countries; risks associated with domestic, regional and global political risks and uncertainties; risks associated with our or third-party use of artificial intelligence technologies; risks related to our indebtedness and compliance with covenants contained in our financing arrangements, and whether any available financing may be sufficient to address our needs; risks relating to delayed payments by our customers and the potential for reduced or canceled orders; risks related to customer concentration; risks associated with new product and program launches; risks relating to our performance and the performance of our counterparties under the agreements we have entered into; the risk that our two largest customers, on whom we depend for a substantial portion of our annual revenues, will not purchase the expected volume of goods under the supply agreements we have entered into with them because, among other things, they no longer require the products at all or to the degree they anticipated or because, among other things, Intuitive Surgical SARL, our largest customer, decides to manufacture the products itself or through one of its affiliates it obtains the products from other listed suppliers specified in our agreement; the risk that we will not achieve expected rebates under the applicable supply agreement; risks relating to our ability to maintain increased levels of production at profitable levels, if at all; or to continue to increase production rates and risks relating to disruptions and delays in our supply chain or labor force; risks associated with the identification of suitable acquisition candidates and the successful, efficient execution of acquisition transactions, the integration of any such acquisition candidates, the value of those acquisitions to our customers and shareholders, and the financing of such acquisitions; and other risks and uncertainties set forth in the sections entitled &#8220;Risk Factors&#8221; and &#8220;Cautionary Note Regarding Forward-Looking Statements&#8221; in the Company&#8217;s filings with the Securities and Exchange Commission (&#8220;SEC&#8221;), which are available on the SEC&#8217;s website at www.sec.gov. The Company expressly disclaims any obligation or undertaking to release publicly any updates or revisions to any such statement to reflect any change in the Company\u2019s expectations or any change in events, conditions, or circumstances on which any such statement is based. Forward-looking statements are also subject to the risks and other issues described above under \u201cUse of non-GAAP Financial Information,\u201d which could cause actual results to differ materially from current expectations included in the Company\u2019s forward-looking statements included in this press release.<\/p>\n<p align=\"start\">\n        <strong>Non-GAAP Financial Information<\/strong>\n      <\/p>\n<p align=\"justify\">This news release includes non-generally accepted accounting principles (\u201cGAAP\u201d) performance measures. Management considers organic sales growth, Adjusted SG&amp;A, Adjusted Operating Income, Adjusted Net Income, EBITDA, Adjusted EBITDA and pro-forma leverage ratio, non-GAAP measures. The Company uses these non-GAAP financial measures to facilitate management&#8217;s financial and operational decision-making, including evaluation of the Company\u2019s historical operating results. The Company\u2019s management believes these non-GAAP measures are useful in evaluating the Company\u2019s operating performance and are similar measures reported by publicly listed U.S. competitors, and regularly used by securities analysts, institutional investors, and other interested parties in analyzing operating performance and prospects. These non-GAAP financial measures reflect an additional way of viewing aspects of the Company&#8217;s operations that, when viewed with GAAP results and the reconciliations to corresponding GAAP financial measures, may provide a more complete understanding of factors and trends affecting the Company\u2019s business. By providing these non-GAAP measures, the Company\u2019s management intends to provide investors with a meaningful, consistent comparison of the Company\u2019s performance for the periods presented. These non-GAAP financial measures should be considered supplemental to, and not a substitute for, financial information prepared in accordance with GAAP. The Company&#8217;s definition of these non-GAAP measures may differ from similarly titled measures of performance used by other companies in other industries or within the same industry.<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"14\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"14\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Organic Sales Growth Rate Reconciliation<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"14\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"14\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"4\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:37%;width:37%;min-width:37%;vertical-align: middle\">Overall Net Sales<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 151,176<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 110,177<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 299,324<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0 215,186<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Net Sales from Acquired Operations<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (35,665)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (15)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (76,343)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"4\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (15)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Organic Sales<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 115,511<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 110,162<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 222,981<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0 215,171<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"4\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Organic Growth Sales Rate<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4.9%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3.6%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"4\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\u00a0<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Adjusted Selling, General and Administrative Expenses (SG&amp;A)<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:37%;width:37%;min-width:37%;vertical-align: middle\">SG&amp;A (GAAP)<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 18,679<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13,900<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 37,405<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 27,812<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Amortization of Intangible Assets<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (2,411)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (1,098)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (4,798)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (2,198)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Adjusted SG&amp;A<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">16,268<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">12,802<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">32,607<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">25,614<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjusted SG&amp;A as a % of Sales<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">10.8%<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">11.6%<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">10.9%<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">11.9%<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\u00a0<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Adjusted Operating Income Reconciliation<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:37%;width:37%;min-width:37%;vertical-align: bottom\">Operating Income (GAAP)<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 24,329<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 17,951<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 47,455<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 33,876<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments:<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Acquisition Costs<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 283<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 320<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Change in fair value of contingent consideration<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 263<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 238<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 526<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 476<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Amortization of Intangible Assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,411<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,098<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,798<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,198<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 (Gain)\/Loss on disposal of fixed assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (1)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjusted operating income (Non-GAAP)<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 27,275<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 20,229<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 53,088<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 37,500<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\u00a0<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Adjusted Net Income and Diluted Common Share Outstanding Reconciliation<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands, except per share data)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0<strong><br \/><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:37%;width:37%;min-width:37%;vertical-align: middle\">Net income (GAAP)<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 17,180<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13,552<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34,364<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26,245<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Adjustments (net of taxes):<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px\">Acquisition Costs<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 283<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 320<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px\">Change in fair value of contingent consideration<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 263<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 238<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 526<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 476<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px\">Amortization of Intangibles<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,411<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,098<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,798<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,198<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px\">(Gain)\/Loss on disposal of fixed assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (1)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px\">\u00a0Taxes on adjustments<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (729)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (564)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (1,394)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (897)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Adjusted net income (Non-GAAP)<\/td>\n<td style=\"border-top: solid black 1pt;border-bottom: double black 3pt;vertical-align: middle\">$<\/td>\n<td colspan=\"1\" style=\"border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 19,397<\/td>\n<td style=\"vertical-align: middle\">\u00a0<\/td>\n<td style=\"border-top: solid black 1pt;border-bottom: double black 3pt;vertical-align: middle\">$<\/td>\n<td colspan=\"1\" style=\"border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 15,266<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-top: solid black 1pt;border-bottom: double black 3pt;vertical-align: middle\">$<\/td>\n<td colspan=\"1\" style=\"border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 38,603<\/td>\n<td style=\"vertical-align: middle\">\u00a0<\/td>\n<td style=\"border-top: solid black 1pt;border-bottom: double black 3pt;vertical-align: middle\">$<\/td>\n<td colspan=\"1\" style=\"border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 28,972<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjusted Net Income per diluted share<br \/> outstanding (Non-GAAP)<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.50<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.97<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4.96<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3.74<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Weighted average diluted common shares outstanding<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7,773<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7,753<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7,783<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7,756<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\u00a0<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>EBITDA Reconciliation<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">(in thousands)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"12\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Six Months Ended<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>June 30,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:37%;width:37%;min-width:37%;vertical-align: bottom\">Net income (GAAP)<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 17,180<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13,552<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34,364<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:14%;width:14%;min-width:14%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26,245<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Income tax expense<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,446<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3,820<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7,543<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6,462<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Interest expense, net<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,671<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 577<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 5,480<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,208<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Depreciation<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,308<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,934<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,555<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3,833<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Amortization of intangible assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,411<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,098<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,798<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,198<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 EBITDA (Non-GAAP)<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 29,016<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 20,981<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 56,740<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 39,946<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments:<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Share based compensation<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2,285<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,736<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4,497<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3,249<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Acquisition costs<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 283<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 320<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 943<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 Change in fair value of contingent consideration<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 263<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 238<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 526<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 476<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px\">\u00a0 (Gain)\/loss on disposal of fixed assets<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (1)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (11)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjusted EBITDA (Non-GAAP)<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 31,836<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 23,897<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 62,072<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td colspan=\"1\" style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 44,621<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\u00a0<\/p>\n<p>      <img decoding=\"async\" alt=\"\" class=\"__GNW8366DE3E__IMG\" src=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\" \/><br \/>\n      <br \/>\n      <img decoding=\"async\" alt=\"\" src=\"https:\/\/ml.globenewswire.com\/media\/MTI0ZWY5MWMtNTIzZS00NTdkLWEzZDItOTM4MDA4OTc1YWI5LTEwNjE1NTMtMjAyNS0wOC0wNC1lbg==\/tiny\/UFP-Technologies-Inc-.png\" \/>\n    <\/div>\n<div class=\"mw_contactinfo\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>NEWBURYPORT, Mass., Aug. 04, 2025 (GLOBE NEWSWIRE) &#8212; UFP Technologies, Inc. (Nasdaq: UFPT), a contract development and manufacturing organization that specializes in single-use and single-patient medical devices, today reported net income of $17.2 million or $2.21 per diluted common share outstanding for its second quarter ended June\u00a030, 2025, compared to net income of $13.6 million or $1.75 per diluted common share outstanding for the same quarter in 2024. Adjusted earnings per diluted common share outstanding grew 27% to $2.50. Sales for the second quarter were $151.2 million compared to sales of $110.2\u00a0million in the second quarter of 2024. Net income for the six-month period ended June 30, 2025, was $34.4 million or $4.42 per diluted common share outstanding compared to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;UFP Technologies Announces Record Q2 Results&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-870395","post","type-post","status-publish","format-standard","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>UFP Technologies Announces Record Q2 Results - Market Newsdesk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UFP Technologies Announces Record Q2 Results - Market Newsdesk\" \/>\n<meta property=\"og:description\" content=\"NEWBURYPORT, Mass., Aug. 04, 2025 (GLOBE NEWSWIRE) &#8212; UFP Technologies, Inc. (Nasdaq: UFPT), a contract development and manufacturing organization that specializes in single-use and single-patient medical devices, today reported net income of $17.2 million or $2.21 per diluted common share outstanding for its second quarter ended June\u00a030, 2025, compared to net income of $13.6 million or $1.75 per diluted common share outstanding for the same quarter in 2024. Adjusted earnings per diluted common share outstanding grew 27% to $2.50. Sales for the second quarter were $151.2 million compared to sales of $110.2\u00a0million in the second quarter of 2024. Net income for the six-month period ended June 30, 2025, was $34.4 million or $4.42 per diluted common share outstanding compared to &hellip; Continue reading &quot;UFP Technologies Announces Record Q2 Results&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/\" \/>\n<meta property=\"og:site_name\" content=\"Market Newsdesk\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-04T23:20:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\" \/>\n<meta name=\"author\" content=\"Newsdesk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Newsdesk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/\"},\"author\":{\"name\":\"Newsdesk\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"headline\":\"UFP Technologies Announces Record Q2 Results\",\"datePublished\":\"2025-08-04T23:20:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/\"},\"wordCount\":2298,\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/\",\"name\":\"UFP Technologies Announces Record Q2 Results - Market Newsdesk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\",\"datePublished\":\"2025-08-04T23:20:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\",\"contentUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/ufp-technologies-announces-record-q2-results\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UFP Technologies Announces Record Q2 Results\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\",\"name\":\"Market Newsdesk\",\"description\":\"Latest Business News in Real Time\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\",\"name\":\"Newsdesk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"caption\":\"Newsdesk\"},\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/author\\\/newsdesk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UFP Technologies Announces Record Q2 Results - Market Newsdesk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/","og_locale":"en_US","og_type":"article","og_title":"UFP Technologies Announces Record Q2 Results - Market Newsdesk","og_description":"NEWBURYPORT, Mass., Aug. 04, 2025 (GLOBE NEWSWIRE) &#8212; UFP Technologies, Inc. (Nasdaq: UFPT), a contract development and manufacturing organization that specializes in single-use and single-patient medical devices, today reported net income of $17.2 million or $2.21 per diluted common share outstanding for its second quarter ended June\u00a030, 2025, compared to net income of $13.6 million or $1.75 per diluted common share outstanding for the same quarter in 2024. Adjusted earnings per diluted common share outstanding grew 27% to $2.50. Sales for the second quarter were $151.2 million compared to sales of $110.2\u00a0million in the second quarter of 2024. Net income for the six-month period ended June 30, 2025, was $34.4 million or $4.42 per diluted common share outstanding compared to &hellip; Continue reading \"UFP Technologies Announces Record Q2 Results\"","og_url":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/","og_site_name":"Market Newsdesk","article_published_time":"2025-08-04T23:20:14+00:00","og_image":[{"url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=","type":"","width":"","height":""}],"author":"Newsdesk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Newsdesk","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#article","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/"},"author":{"name":"Newsdesk","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"headline":"UFP Technologies Announces Record Q2 Results","datePublished":"2025-08-04T23:20:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/"},"wordCount":2298,"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/","url":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/","name":"UFP Technologies Announces Record Q2 Results - Market Newsdesk","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#primaryimage"},"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=","datePublished":"2025-08-04T23:20:14+00:00","author":{"@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"breadcrumb":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#primaryimage","url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI=","contentUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTUwNTcyNCM3MDgwMjI2IzIwNDk5ODI="},{"@type":"BreadcrumbList","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/ufp-technologies-announces-record-q2-results\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.marketnewsdesk.com\/"},{"@type":"ListItem","position":2,"name":"UFP Technologies Announces Record Q2 Results"}]},{"@type":"WebSite","@id":"https:\/\/www.marketnewsdesk.com\/#website","url":"https:\/\/www.marketnewsdesk.com\/","name":"Market Newsdesk","description":"Latest Business News in Real Time","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.marketnewsdesk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979","name":"Newsdesk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","caption":"Newsdesk"},"url":"https:\/\/www.marketnewsdesk.com\/index.php\/author\/newsdesk\/"}]}},"_links":{"self":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/870395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/comments?post=870395"}],"version-history":[{"count":0,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/870395\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/media?parent=870395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/categories?post=870395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/tags?post=870395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}