<?xml version="1.0" encoding="windows-1252"?>
<informationTable xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<infoTable>
  <nameOfIssuer>A10 Networks Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>002121101</cusip>
  <value>4752620</value>
  <shrsOrPrnAmt>
    <sshPrnamt>347160</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>172696</Sole>
    <Shared>0</Shared>
    <None>174464</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Accuray Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004397105</cusip>
  <value>300789</value>
  <shrsOrPrnAmt>
    <sshPrnamt>121777</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>121777</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ACI Worldwide Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004498101</cusip>
  <value>1293197</value>
  <shrsOrPrnAmt>
    <sshPrnamt>38940</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16929</Sole>
    <Shared>0</Shared>
    <None>22011</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Addus HomeCare Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>006739106</cusip>
  <value>3203437</value>
  <shrsOrPrnAmt>
    <sshPrnamt>30999</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15145</Sole>
    <Shared>0</Shared>
    <None>15854</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Albany International Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>012348108</cusip>
  <value>3078443</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32921</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14477</Sole>
    <Shared>0</Shared>
    <None>18444</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amedisys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>023436108</cusip>
  <value>2751990</value>
  <shrsOrPrnAmt>
    <sshPrnamt>29861</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13144</Sole>
    <Shared>0</Shared>
    <None>16717</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ameresco, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02361E108</cusip>
  <value>1927287</value>
  <shrsOrPrnAmt>
    <sshPrnamt>79871</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>35111</Sole>
    <Shared>0</Shared>
    <None>44760</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>American Eagle Outfitters</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02553E106</cusip>
  <value>3036360</value>
  <shrsOrPrnAmt>
    <sshPrnamt>117734</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>51716</Sole>
    <Shared>0</Shared>
    <None>66018</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>AMN Healthcare Services Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>001744101</cusip>
  <value>1101739</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17625</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7750</Sole>
    <Shared>0</Shared>
    <None>9875</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amphastar Pharma Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>03209R103</cusip>
  <value>1526882</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34773</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15331</Sole>
    <Shared>0</Shared>
    <None>19442</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Aris Water Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>04041L106</cusip>
  <value>2429980</value>
  <shrsOrPrnAmt>
    <sshPrnamt>171730</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>92138</Sole>
    <Shared>0</Shared>
    <None>79592</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Axcelis Technologies Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>054540208</cusip>
  <value>3470725</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31122</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13690</Sole>
    <Shared>0</Shared>
    <None>17432</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Badger Meter Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>056525108</cusip>
  <value>2483945</value>
  <shrsOrPrnAmt>
    <sshPrnamt>15351</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6748</Sole>
    <Shared>0</Shared>
    <None>8603</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bank of Marin Bancorp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>063425102</cusip>
  <value>192805</value>
  <shrsOrPrnAmt>
    <sshPrnamt>11497</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11497</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bankwell Financial Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>06654A103</cusip>
  <value>303965</value>
  <shrsOrPrnAmt>
    <sshPrnamt>11718</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11718</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Barrett Business Services Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>068463108</cusip>
  <value>1810449</value>
  <shrsOrPrnAmt>
    <sshPrnamt>14287</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7115</Sole>
    <Shared>0</Shared>
    <None>7172</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>BGSF, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>05601C105</cusip>
  <value>422396</value>
  <shrsOrPrnAmt>
    <sshPrnamt>40576</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>40576</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Boise Cascade Company</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>09739D100</cusip>
  <value>2802070</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18270</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8049</Sole>
    <Shared>0</Shared>
    <None>10221</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cactus, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>127203107</cusip>
  <value>3485763</value>
  <shrsOrPrnAmt>
    <sshPrnamt>69590</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>30388</Sole>
    <Shared>0</Shared>
    <None>39202</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>California Water Service Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>130788102</cusip>
  <value>1359215</value>
  <shrsOrPrnAmt>
    <sshPrnamt>29243</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12748</Sole>
    <Shared>0</Shared>
    <None>16495</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cambium Network Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>G17766109</cusip>
  <value>1156076</value>
  <shrsOrPrnAmt>
    <sshPrnamt>268231</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>139188</Sole>
    <Shared>0</Shared>
    <None>129043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CBIZ Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>124805102</cusip>
  <value>3593809</value>
  <shrsOrPrnAmt>
    <sshPrnamt>45781</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20117</Sole>
    <Shared>0</Shared>
    <None>25664</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Century Communities, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>156504300</cusip>
  <value>3310336</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34304</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15071</Sole>
    <Shared>0</Shared>
    <None>19233</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Coherent Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>19247G107</cusip>
  <value>5323830</value>
  <shrsOrPrnAmt>
    <sshPrnamt>87823</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>38603</Sole>
    <Shared>0</Shared>
    <None>49220</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Coherus Biosciences</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>19249H103</cusip>
  <value>753768</value>
  <shrsOrPrnAmt>
    <sshPrnamt>315384</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>140772</Sole>
    <Shared>0</Shared>
    <None>174612</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Columbus McKinnon Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199333105</cusip>
  <value>474819</value>
  <shrsOrPrnAmt>
    <sshPrnamt>10639</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10639</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Comfort Systems USA Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199908104</cusip>
  <value>7567217</value>
  <shrsOrPrnAmt>
    <sshPrnamt>23818</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10469</Sole>
    <Shared>0</Shared>
    <None>13349</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Consensus Cloud Solutions Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>20848V105</cusip>
  <value>913171</value>
  <shrsOrPrnAmt>
    <sshPrnamt>57577</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28463</Sole>
    <Shared>0</Shared>
    <None>29114</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Corcept Therapeutics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>218352102</cusip>
  <value>1250381</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49638</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22172</Sole>
    <Shared>0</Shared>
    <None>27466</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CRA International, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>12618T105</cusip>
  <value>719480</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4810</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4810</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Diodes Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>254543101</cusip>
  <value>2640296</value>
  <shrsOrPrnAmt>
    <sshPrnamt>37451</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16424</Sole>
    <Shared>0</Shared>
    <None>21027</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>DMC Global Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>23291C103</cusip>
  <value>1921441</value>
  <shrsOrPrnAmt>
    <sshPrnamt>98586</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>50666</Sole>
    <Shared>0</Shared>
    <None>47920</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Donnely Financial</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>25787G100</cusip>
  <value>372370</value>
  <shrsOrPrnAmt>
    <sshPrnamt>6005</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6005</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dorman Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>258278100</cusip>
  <value>3492402</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36232</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15928</Sole>
    <Shared>0</Shared>
    <None>20304</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dril-Quip, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>262037104</cusip>
  <value>2889563</value>
  <shrsOrPrnAmt>
    <sshPrnamt>128254</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>64907</Sole>
    <Shared>0</Shared>
    <None>63347</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Easterly Government Properties</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>27616P103</cusip>
  <value>955848</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83045</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36658</Sole>
    <Shared>0</Shared>
    <None>46387</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ensign Group Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29358P101</cusip>
  <value>7162984</value>
  <shrsOrPrnAmt>
    <sshPrnamt>57571</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>25293</Sole>
    <Shared>0</Shared>
    <None>32278</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ePlus Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>294268107</cusip>
  <value>1802179</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22946</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10071</Sole>
    <Shared>0</Shared>
    <None>12875</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Evercore Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29977A105</cusip>
  <value>2124653</value>
  <shrsOrPrnAmt>
    <sshPrnamt>11032</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4818</Sole>
    <Shared>0</Shared>
    <None>6214</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>EVERTEC, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30040P103</cusip>
  <value>2325611</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58286</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>25420</Sole>
    <Shared>0</Shared>
    <None>32866</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exlservice Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>302081104</cusip>
  <value>3406702</value>
  <shrsOrPrnAmt>
    <sshPrnamt>107129</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>47115</Sole>
    <Shared>0</Shared>
    <None>60014</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exponent Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30214U102</cusip>
  <value>2918874</value>
  <shrsOrPrnAmt>
    <sshPrnamt>35299</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15399</Sole>
    <Shared>0</Shared>
    <None>19900</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>First Financial Bankshares, In</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>32020R109</cusip>
  <value>2871072</value>
  <shrsOrPrnAmt>
    <sshPrnamt>87506</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>38438</Sole>
    <Shared>0</Shared>
    <None>49068</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Franklin Electric Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>353514102</cusip>
  <value>2285627</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21399</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9382</Sole>
    <Shared>0</Shared>
    <None>12017</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Gentherm Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37253A103</cusip>
  <value>3233462</value>
  <shrsOrPrnAmt>
    <sshPrnamt>56156</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24708</Sole>
    <Shared>0</Shared>
    <None>31448</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Getty Realty Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>374297109</cusip>
  <value>1972373</value>
  <shrsOrPrnAmt>
    <sshPrnamt>72116</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>31696</Sole>
    <Shared>0</Shared>
    <None>40420</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Glacier Bancorp Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37637Q105</cusip>
  <value>4207045</value>
  <shrsOrPrnAmt>
    <sshPrnamt>104445</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>45923</Sole>
    <Shared>0</Shared>
    <None>58522</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Globus Medical, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>379577208</cusip>
  <value>4061192</value>
  <shrsOrPrnAmt>
    <sshPrnamt>75712</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>33341</Sole>
    <Shared>0</Shared>
    <None>42371</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Healthcare Services Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>421906108</cusip>
  <value>1821905</value>
  <shrsOrPrnAmt>
    <sshPrnamt>145986</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>63757</Sole>
    <Shared>0</Shared>
    <None>82229</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Hope Bancorp, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>43940T109</cusip>
  <value>1926832</value>
  <shrsOrPrnAmt>
    <sshPrnamt>167405</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>73075</Sole>
    <Shared>0</Shared>
    <None>94330</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Insteel Industries, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>45774W108</cusip>
  <value>4095273</value>
  <shrsOrPrnAmt>
    <sshPrnamt>107150</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>53937</Sole>
    <Shared>0</Shared>
    <None>53213</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Investors Title Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461804106</cusip>
  <value>306308</value>
  <shrsOrPrnAmt>
    <sshPrnamt>1877</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>1877</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>iRadimed Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>46266A109</cusip>
  <value>1855630</value>
  <shrsOrPrnAmt>
    <sshPrnamt>42183</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21325</Sole>
    <Shared>0</Shared>
    <None>20858</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>J&amp;J Snack Foods Corp.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466032109</cusip>
  <value>2031935</value>
  <shrsOrPrnAmt>
    <sshPrnamt>14056</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6182</Sole>
    <Shared>0</Shared>
    <None>7874</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Jack in the Box Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466367109</cusip>
  <value>2188004</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31951</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17164</Sole>
    <Shared>0</Shared>
    <None>14787</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Kulicke Soffa</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>501242101</cusip>
  <value>2796179</value>
  <shrsOrPrnAmt>
    <sshPrnamt>55579</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24522</Sole>
    <Shared>0</Shared>
    <None>31057</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>La-Z-Boy Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>505336107</cusip>
  <value>3108992</value>
  <shrsOrPrnAmt>
    <sshPrnamt>82642</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36322</Sole>
    <Shared>0</Shared>
    <None>46320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lakeland Financial Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>511656100</cusip>
  <value>2082581</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31402</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13787</Sole>
    <Shared>0</Shared>
    <None>17615</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Landstar System, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>515098101</cusip>
  <value>3264583</value>
  <shrsOrPrnAmt>
    <sshPrnamt>16936</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7459</Sole>
    <Shared>0</Shared>
    <None>9477</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lemaitre Vascular Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>525558201</cusip>
  <value>4857817</value>
  <shrsOrPrnAmt>
    <sshPrnamt>73204</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37295</Sole>
    <Shared>0</Shared>
    <None>35909</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lithia Motors, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>536797103</cusip>
  <value>4120278</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13695</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6020</Sole>
    <Shared>0</Shared>
    <None>7675</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>LTC Properties, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>502175102</cusip>
  <value>1225107</value>
  <shrsOrPrnAmt>
    <sshPrnamt>37684</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16474</Sole>
    <Shared>0</Shared>
    <None>21210</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lumentum Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55024U109</cusip>
  <value>1543941</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32607</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14124</Sole>
    <Shared>0</Shared>
    <None>18483</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MACOM Tech  Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405Y100</cusip>
  <value>3769746</value>
  <shrsOrPrnAmt>
    <sshPrnamt>39416</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17352</Sole>
    <Shared>0</Shared>
    <None>22064</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MasTec, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>576323109</cusip>
  <value>3078183</value>
  <shrsOrPrnAmt>
    <sshPrnamt>33010</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14394</Sole>
    <Shared>0</Shared>
    <None>18616</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Maxiums Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>577933104</cusip>
  <value>2028870</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24182</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10640</Sole>
    <Shared>0</Shared>
    <None>13542</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MEDNAX, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58502B106</cusip>
  <value>1291062</value>
  <shrsOrPrnAmt>
    <sshPrnamt>128720</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>56490</Sole>
    <Shared>0</Shared>
    <None>72230</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Medpace Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58506Q109</cusip>
  <value>7499407</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18556</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8154</Sole>
    <Shared>0</Shared>
    <None>10402</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Methode Electronics, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>591520200</cusip>
  <value>2991895</value>
  <shrsOrPrnAmt>
    <sshPrnamt>245640</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>124537</Sole>
    <Shared>0</Shared>
    <None>121103</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MillerKnoll, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>600544100</cusip>
  <value>2269898</value>
  <shrsOrPrnAmt>
    <sshPrnamt>91676</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>40041</Sole>
    <Shared>0</Shared>
    <None>51635</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MYR Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405W104</cusip>
  <value>759318</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4296</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4296</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Neogen Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>640491106</cusip>
  <value>2796278</value>
  <shrsOrPrnAmt>
    <sshPrnamt>177204</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>77884</Sole>
    <Shared>0</Shared>
    <None>99320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>NVE Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>629445206</cusip>
  <value>2837874</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31469</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17365</Sole>
    <Shared>0</Shared>
    <None>14104</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ollie&apos;s Bargain Outlet Holding</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>681116109</cusip>
  <value>2490621</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31301</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13720</Sole>
    <Shared>0</Shared>
    <None>17581</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Omnicell, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68213N109</cusip>
  <value>1001274</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34255</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15031</Sole>
    <Shared>0</Shared>
    <None>19224</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onto Innovation Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>683344105</cusip>
  <value>3365915</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18588</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8173</Sole>
    <Shared>0</Shared>
    <None>10415</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>OSI Systems, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>671044105</cusip>
  <value>3515943</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24618</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10837</Sole>
    <Shared>0</Shared>
    <None>13781</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Pacira Biosciences</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>695127100</cusip>
  <value>1810004</value>
  <shrsOrPrnAmt>
    <sshPrnamt>61944</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27434</Sole>
    <Shared>0</Shared>
    <None>34510</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Park Aerospace Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70014A104</cusip>
  <value>475319</value>
  <shrsOrPrnAmt>
    <sshPrnamt>28582</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28582</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Paysign</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70451A104</cusip>
  <value>374788</value>
  <shrsOrPrnAmt>
    <sshPrnamt>102401</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>102401</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Perficient, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71375U101</cusip>
  <value>1962945</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34872</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15331</Sole>
    <Shared>0</Shared>
    <None>19541</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Performance Food Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71377A103</cusip>
  <value>4585807</value>
  <shrsOrPrnAmt>
    <sshPrnamt>61439</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26898</Sole>
    <Shared>0</Shared>
    <None>34541</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Phibro Animal Health Corporati</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71742Q106</cusip>
  <value>1780383</value>
  <shrsOrPrnAmt>
    <sshPrnamt>137694</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>73608</Sole>
    <Shared>0</Shared>
    <None>64086</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Photronics</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>719405102</cusip>
  <value>2174410</value>
  <shrsOrPrnAmt>
    <sshPrnamt>76780</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>40268</Sole>
    <Shared>0</Shared>
    <None>36512</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Plexus Corp.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>729132100</cusip>
  <value>2149095</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22665</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9972</Sole>
    <Shared>0</Shared>
    <None>12693</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quaker Chemical Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>747316107</cusip>
  <value>2816235</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13721</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6070</Sole>
    <Shared>0</Shared>
    <None>7651</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Qualys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74758T303</cusip>
  <value>2107568</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12630</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5536</Sole>
    <Shared>0</Shared>
    <None>7094</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quipt Home Medical Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74880P104</cusip>
  <value>208541</value>
  <shrsOrPrnAmt>
    <sshPrnamt>47721</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>47721</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RBC Bearings Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>75524B104</cusip>
  <value>4191777</value>
  <shrsOrPrnAmt>
    <sshPrnamt>15505</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6765</Sole>
    <Shared>0</Shared>
    <None>8740</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Rogers Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>775133101</cusip>
  <value>2049895</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17271</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7599</Sole>
    <Shared>0</Shared>
    <None>9672</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RPC Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>749660106</cusip>
  <value>1859047</value>
  <shrsOrPrnAmt>
    <sshPrnamt>240187</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>105336</Sole>
    <Shared>0</Shared>
    <None>134851</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Select Energy Services, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>81617J301</cusip>
  <value>2526233</value>
  <shrsOrPrnAmt>
    <sshPrnamt>273698</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>142632</Sole>
    <Shared>0</Shared>
    <None>131066</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shake Shack Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>819047101</cusip>
  <value>2427540</value>
  <shrsOrPrnAmt>
    <sshPrnamt>23335</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10265</Sole>
    <Shared>0</Shared>
    <None>13070</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shutterstock Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>825690100</cusip>
  <value>1186571</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25902</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11389</Sole>
    <Shared>0</Shared>
    <None>14513</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>SiteOne Landscape Supply, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>82982L103</cusip>
  <value>3971013</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22750</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10030</Sole>
    <Shared>0</Shared>
    <None>12720</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Sterling Construction Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>859241101</cusip>
  <value>5615441</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50906</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26964</Sole>
    <Shared>0</Shared>
    <None>23942</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Supernus Pharmaceuticals Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>868459108</cusip>
  <value>2751313</value>
  <shrsOrPrnAmt>
    <sshPrnamt>80660</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>40617</Sole>
    <Shared>0</Shared>
    <None>40043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Synaptics Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>87157D109</cusip>
  <value>1862616</value>
  <shrsOrPrnAmt>
    <sshPrnamt>19092</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8425</Sole>
    <Shared>0</Shared>
    <None>10667</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Tetra Tech Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>88162G103</cusip>
  <value>5920325</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32052</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14047</Sole>
    <Shared>0</Shared>
    <None>18005</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Texas Roadhouse Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>882681109</cusip>
  <value>2972775</value>
  <shrsOrPrnAmt>
    <sshPrnamt>19245</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8466</Sole>
    <Shared>0</Shared>
    <None>10779</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>The Joint Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>47973J102</cusip>
  <value>288822</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22115</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22115</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>UFP Industries Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90278Q108</cusip>
  <value>4458620</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36246</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15945</Sole>
    <Shared>0</Shared>
    <None>20301</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>US Physical Therapy Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90337L108</cusip>
  <value>4198538</value>
  <shrsOrPrnAmt>
    <sshPrnamt>37198</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17464</Sole>
    <Shared>0</Shared>
    <None>19734</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Utah Medical Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>917488108</cusip>
  <value>323906</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4555</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4555</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Vishay Precision Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>92835K103</cusip>
  <value>2678155</value>
  <shrsOrPrnAmt>
    <sshPrnamt>75804</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42027</Sole>
    <Shared>0</Shared>
    <None>33777</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>WD-40 CO COM</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>929236107</cusip>
  <value>1517580</value>
  <shrsOrPrnAmt>
    <sshPrnamt>5991</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>2619</Sole>
    <Shared>0</Shared>
    <None>3372</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Wesbanco Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>950810101</cusip>
  <value>2522135</value>
  <shrsOrPrnAmt>
    <sshPrnamt>84607</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37227</Sole>
    <Shared>0</Shared>
    <None>47380</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>YETI Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98585X104</cusip>
  <value>1938140</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50276</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22037</Sole>
    <Shared>0</Shared>
    <None>28239</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ziff Davis, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>48123V102</cusip>
  <value>2166874</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34373</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15066</Sole>
    <Shared>0</Shared>
    <None>19307</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Zynex</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98986M103</cusip>
  <value>2309051</value>
  <shrsOrPrnAmt>
    <sshPrnamt>186665</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>104242</Sole>
    <Shared>0</Shared>
    <None>82423</None>
  </votingAuthority>
</infoTable>
</informationTable>
