<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:informationTable xmlns:ns1="http://www.sec.gov/edgar/document/thirteenf/informationtable">
	<ns1:infoTable>
		<ns1:nameOfIssuer>3M</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>88579Y101</ns1:cusip>
		<ns1:value>27393</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>200667</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>667</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Abbott Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>002824100</ns1:cusip>
		<ns1:value>33903</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>429125</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>373499</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>55626</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>AbbVie</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00287Y109</ns1:cusip>
		<ns1:value>27872</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>365826</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>350000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>15826</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Accenture, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G1151C101</ns1:cusip>
		<ns1:value>2170</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12690</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10150</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2540</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Adobe</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00724F101</ns1:cusip>
		<ns1:value>137321</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>431355</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>410300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21055</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Agilent Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00846U101</ns1:cusip>
		<ns1:value>65253</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>911103</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>900000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11103</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Air Products &amp; Chemicals</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>009158106</ns1:cusip>
		<ns1:value>28340</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>141975</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>140000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1975</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Akamai Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00971T101</ns1:cusip>
		<ns1:value>350</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3825</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3825</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Alcon</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>H01301128</ns1:cusip>
		<ns1:value>3244</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>63308</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>62080</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1228</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Alphabet, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>02079K305</ns1:cusip>
		<ns1:value>4126</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3383</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1784</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1599</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amazon.com</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>023135106</ns1:cusip>
		<ns1:value>4415</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1898</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1589</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>309</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amdocs Limited</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G02602103</ns1:cusip>
		<ns1:value>275</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4640</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1640</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amgen</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>031162100</ns1:cusip>
		<ns1:value>73089</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>360362</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>356100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4262</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Aon PLC</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G0408V102</ns1:cusip>
		<ns1:value>275</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1664</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1664</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Apple</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>037833100</ns1:cusip>
		<ns1:value>149531</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>587086</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>515600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>71486</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ASML Holding NY</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>N07059210</ns1:cusip>
		<ns1:value>85948</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>326588</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>326000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>588</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>AT&amp;T</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00206R102</ns1:cusip>
		<ns1:value>369</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>12500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Baidu ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>056752108</ns1:cusip>
		<ns1:value>706</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Banco Santander ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>05964H105</ns1:cusip>
		<ns1:value>21</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10081</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10081</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Barrick Gold</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>067901108</ns1:cusip>
		<ns1:value>1006</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>50321</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>40321</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>BCE</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>05534B760</ns1:cusip>
		<ns1:value>2307</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>57469</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>54000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3469</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>BHP Biliton ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>088606108</ns1:cusip>
		<ns1:value>216</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5633</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>133</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Booking Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>09857L108</ns1:cusip>
		<ns1:value>241</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>179</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>179</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Bristol-Myers Squibb</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>110122108</ns1:cusip>
		<ns1:value>51215</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>916961</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>894900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22061</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Canadian National Railway</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>136375102</ns1:cusip>
		<ns1:value>30896</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>398000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>386000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Carlisle</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>142339100</ns1:cusip>
		<ns1:value>32723</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>261200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>260000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Carrier Global</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>14448C104</ns1:cusip>
		<ns1:value>1231</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>71500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>71500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Charles River Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>159864107</ns1:cusip>
		<ns1:value>454</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3595</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3595</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Chevron Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>166764100</ns1:cusip>
		<ns1:value>267</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3684</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3684</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>China Mobile ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>16941M109</ns1:cusip>
		<ns1:value>787</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Chubb</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H1467J104</ns1:cusip>
		<ns1:value>432</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4031</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2330</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1701</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Church &amp; Dwight</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>171340102</ns1:cusip>
		<ns1:value>78425</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1221705</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1202400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>19305</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Cisco Systems</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>17275R102</ns1:cusip>
		<ns1:value>66992</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1703906</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1655000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>48906</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Clorox</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>189054109</ns1:cusip>
		<ns1:value>43669</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>252055</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>250000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2055</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Colgate-Palmolive</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>194162103</ns1:cusip>
		<ns1:value>35741</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>537666</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>536600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1066</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ConocoPhillips</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>20825C104</ns1:cusip>
		<ns1:value>253</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7708</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2990</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4718</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Copa Holdings, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>P31076105</ns1:cusip>
		<ns1:value>915</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Corteva</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22052L104</ns1:cusip>
		<ns1:value>5037</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>214342</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>213666</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>676</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Costco Wholesale</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22160K105</ns1:cusip>
		<ns1:value>1590</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5228</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4883</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>345</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CrowdStrike Holdings Inc Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22788C105</ns1:cusip>
		<ns1:value>245</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4400</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CSW Industrials, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>126402106</ns1:cusip>
		<ns1:value>454</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Delta Air Lines</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>247361702</ns1:cusip>
		<ns1:value>391</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13700</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>DocuSign</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>256163106</ns1:cusip>
		<ns1:value>1719</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>17700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>8500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>9200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Dominion Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>25746U109</ns1:cusip>
		<ns1:value>215</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Domino's Pizza</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>25754A201</ns1:cusip>
		<ns1:value>665</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Domo, Inc. Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>257554105</ns1:cusip>
		<ns1:value>119</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Duke Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>26441C204</ns1:cusip>
		<ns1:value>332</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3965</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1365</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Duke Realty</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>264411505</ns1:cusip>
		<ns1:value>416</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12850</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12850</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Ecolab</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>278865100</ns1:cusip>
		<ns1:value>1980</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11823</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7143</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4680</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Editas Medicine</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28106W103</ns1:cusip>
		<ns1:value>200</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10100</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>10100</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Edwards Lifesciences</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28176E108</ns1:cusip>
		<ns1:value>1566</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7325</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1625</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Elanco Animal Health</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28414H103</ns1:cusip>
		<ns1:value>341</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15209</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>15209</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Eli Lilly</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>532457108</ns1:cusip>
		<ns1:value>127776</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>921108</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>910000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11108</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>EMCOR Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>29084Q100</ns1:cusip>
		<ns1:value>41866</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>682750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>682750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Equinor ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>29446M102</ns1:cusip>
		<ns1:value>378</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Estee Lauder, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>518439104</ns1:cusip>
		<ns1:value>73268</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>459821</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>458594</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1227</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Etsy, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>29786A106</ns1:cusip>
		<ns1:value>423</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Exponent</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>30214U102</ns1:cusip>
		<ns1:value>503</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Exxon Mobil</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>30231G102</ns1:cusip>
		<ns1:value>235</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6196</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6196</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fastenal</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>311900104</ns1:cusip>
		<ns1:value>37651</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1204508</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1202800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1708</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fidelity National Information Srvcs</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>31620M106</ns1:cusip>
		<ns1:value>1515</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12493</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>11144</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1349</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fomento Economico Mex ADR (FEMSA)</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>344419106</ns1:cusip>
		<ns1:value>1696</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Frontline Ltd</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G3682E192</ns1:cusip>
		<ns1:value>638</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>60000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>60000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Gartner</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>366651107</ns1:cusip>
		<ns1:value>17996</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>180741</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>180000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>741</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>General Mills</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>370334104</ns1:cusip>
		<ns1:value>15857</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300488</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>488</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Genuine Parts</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>372460105</ns1:cusip>
		<ns1:value>26021</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>386465</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>382000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4465</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>GlaxoSmithKline ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>37733W105</ns1:cusip>
		<ns1:value>16503</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>434407</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>391107</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>43300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Hasbro</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>418056107</ns1:cusip>
		<ns1:value>447</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6225</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5025</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Home Depot</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>437076102</ns1:cusip>
		<ns1:value>2336</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12054</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5450</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6604</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Honeywell International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>438516106</ns1:cusip>
		<ns1:value>35062</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>262056</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>261200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>856</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ICF International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>44925C103</ns1:cusip>
		<ns1:value>426</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Idacorp</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>451107106</ns1:cusip>
		<ns1:value>1247</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>14200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Illinois Tool Works</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>452308109</ns1:cusip>
		<ns1:value>45000</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>316631</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16631</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Illumina</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>452327109</ns1:cusip>
		<ns1:value>812</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2974</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2974</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Intel</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>458140100</ns1:cusip>
		<ns1:value>55117</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>936422</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>902000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>34422</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>International Flavors &amp; Fragrances</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>459506101</ns1:cusip>
		<ns1:value>616</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Intuit</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>461202103</ns1:cusip>
		<ns1:value>120016</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>466910</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>450000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16910</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Johnson &amp; Johnson</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>478160104</ns1:cusip>
		<ns1:value>77338</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>500207</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>481800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>18407</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Johnson Controls International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G51502105</ns1:cusip>
		<ns1:value>306</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11175</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5625</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>JP Morgan Chase</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>46625H100</ns1:cusip>
		<ns1:value>216</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2401</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1901</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Juniper Networks</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>48203R104</ns1:cusip>
		<ns1:value>295</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>15400</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Kansas City Southern Industries</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>485170302</ns1:cusip>
		<ns1:value>1954</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15265</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7565</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Keysight Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>49338L103</ns1:cusip>
		<ns1:value>47979</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>501179</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>500000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1179</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Kimberly-Clark</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>494368103</ns1:cusip>
		<ns1:value>33005</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>235650</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>230000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5650</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Koninklijke Philips</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>500472303</ns1:cusip>
		<ns1:value>1732</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>41016</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>39788</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1228</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>L3Harris Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>502431109</ns1:cusip>
		<ns1:value>270</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1460</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>660</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Lincoln Electric Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>533900106</ns1:cusip>
		<ns1:value>26744</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>361200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>360000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Linde</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G5494J103</ns1:cusip>
		<ns1:value>29357</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>161971</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>161000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>971</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Lowe's</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>548661107</ns1:cusip>
		<ns1:value>40425</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>427278</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>413350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13928</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mastercard, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>57636Q104</ns1:cusip>
		<ns1:value>2679</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10495</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10038</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>457</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>McCormick &amp; Co</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>579780206</ns1:cusip>
		<ns1:value>54215</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>361782</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>350500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11282</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>MercadoLibre</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>58733R102</ns1:cusip>
		<ns1:value>2934</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Merck &amp; Co</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>58933Y105</ns1:cusip>
		<ns1:value>1159</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14554</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4554</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mesa Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>59064R109</ns1:cusip>
		<ns1:value>430</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1900</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1900</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Methanex</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>59151K108</ns1:cusip>
		<ns1:value>4071</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Micro Focus International plc Spons</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>594837403</ns1:cusip>
		<ns1:value>143</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Microchip Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>595017104</ns1:cusip>
		<ns1:value>40180</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>510760</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>504600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6160</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Micron Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>595112103</ns1:cusip>
		<ns1:value>951</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>21800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>19800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Microsoft</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>594918104</ns1:cusip>
		<ns1:value>84312</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>493627</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>471358</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22269</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mitsubishi UFJ Financial ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>606822104</ns1:cusip>
		<ns1:value>1355</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>350000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>350000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Monolithic Power Systems</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>609839105</ns1:cusip>
		<ns1:value>504</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3011</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3011</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Monster Beverage</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>61174X109</ns1:cusip>
		<ns1:value>892</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15850</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>15850</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Moody's</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>615369105</ns1:cusip>
		<ns1:value>1203</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5689</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5689</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Newmont Mining</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>651639106</ns1:cusip>
		<ns1:value>1214</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>25287</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21287</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NextEra Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>65339F101</ns1:cusip>
		<ns1:value>241</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NICE Systems ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>653656108</ns1:cusip>
		<ns1:value>6761</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>40859</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>40000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>859</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Nike, Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>654106103</ns1:cusip>
		<ns1:value>2778</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>33005</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10276</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22729</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Norfolk Southern</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>655844108</ns1:cusip>
		<ns1:value>47613</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>305855</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5855</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novartis ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>66987V109</ns1:cusip>
		<ns1:value>25909</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>295403</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>274950</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>20453</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novo Nordisk ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>670100205</ns1:cusip>
		<ns1:value>68469</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1070988</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1057145</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13843</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Nutrien</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>67077M108</ns1:cusip>
		<ns1:value>6188</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>180058</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>178040</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2018</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NXP Semiconductors</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>N6596X109</ns1:cusip>
		<ns1:value>456</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5375</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3475</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Open Text Corp US</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>683715106</ns1:cusip>
		<ns1:value>2127</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>57650</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>57650</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Oracle</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>68389X105</ns1:cusip>
		<ns1:value>36454</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>703487</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>674400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>29087</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Orange ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>684060106</ns1:cusip>
		<ns1:value>244</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Otis Worldwide</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>68902V107</ns1:cusip>
		<ns1:value>1697</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>35750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>35750</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Parker Hannifin</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>701094104</ns1:cusip>
		<ns1:value>29743</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>224562</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>224550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PCTEL</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>69325Q105</ns1:cusip>
		<ns1:value>166</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>25000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>25000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PepsiCo</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>713448108</ns1:cusip>
		<ns1:value>64288</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>494130</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>486550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7580</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Pfizer</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>717081103</ns1:cusip>
		<ns1:value>43365</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1185214</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1155500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>29714</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Phillips 66</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>718546104</ns1:cusip>
		<ns1:value>304</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5659</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5659</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PPG Industries</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>693506107</ns1:cusip>
		<ns1:value>36732</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>406213</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>400700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5513</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Procter &amp; Gamble</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>742718109</ns1:cusip>
		<ns1:value>5822</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>49411</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>41150</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8261</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Public Storage International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>74460D109</ns1:cusip>
		<ns1:value>407</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2050</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2050</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Qualcomm</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>747525103</ns1:cusip>
		<ns1:value>61660</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>837382</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>813500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23882</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Raymond James Financial</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>754730109</ns1:cusip>
		<ns1:value>352</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5568</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5568</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Rio Tinto ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>767204100</ns1:cusip>
		<ns1:value>1704</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>37035</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>35000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2035</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Rockwell Automation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>773903109</ns1:cusip>
		<ns1:value>50802</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Roper Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>776696106</ns1:cusip>
		<ns1:value>530</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1700</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Ross Stores</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>778296103</ns1:cusip>
		<ns1:value>1805</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>21415</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>13350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8065</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>RPM International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>749685103</ns1:cusip>
		<ns1:value>13013</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>203731</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>199400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4331</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SailPoint Technologies Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>78781P105</ns1:cusip>
		<ns1:value>411</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>27000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>27000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Salesforce.com</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>79466L302</ns1:cusip>
		<ns1:value>270</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1877</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1877</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sanderson Farms</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>800013104</ns1:cusip>
		<ns1:value>271</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SAP ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>803054204</ns1:cusip>
		<ns1:value>38045</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>330442</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>329229</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1213</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SK Telecom ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>78440P108</ns1:cusip>
		<ns1:value>263</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SolarWinds</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>83417Q105</ns1:cusip>
		<ns1:value>235</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>15000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sony  ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>835699307</ns1:cusip>
		<ns1:value>1234</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>19920</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>19000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>920</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Stanley Black &amp; Decker</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>854502101</ns1:cusip>
		<ns1:value>9147</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>86714</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>81634</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5080</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Starbucks</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>855244109</ns1:cusip>
		<ns1:value>1390</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>18792</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>16387</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2405</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>STMicroelectronics (NY shares)</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>861012102</ns1:cusip>
		<ns1:value>1200</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>55750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>51950</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Stryker</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>863667101</ns1:cusip>
		<ns1:value>56132</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>308050</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>303000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5050</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SVMK</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>78489X103</ns1:cusip>
		<ns1:value>509</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>37700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>37700</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SYNNEX Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87162W100</ns1:cusip>
		<ns1:value>5130</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>70279</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>70235</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>44</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Taiwan Semiconductor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>874039100</ns1:cusip>
		<ns1:value>112282</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2136695</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2096769</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>39926</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Take-Two Interactive Software</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>874054109</ns1:cusip>
		<ns1:value>1157</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9375</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1875</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>TE Connectivity</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H84989104</ns1:cusip>
		<ns1:value>403</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6291</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1351</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4940</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Telekomunikasi Indonesia ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>715684106</ns1:cusip>
		<ns1:value>1058</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>54200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>32000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Telus</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87971M103</ns1:cusip>
		<ns1:value>1710</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>108000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>100000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Texas Instruments</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>882508104</ns1:cusip>
		<ns1:value>729</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6919</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3319</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>TJX Companies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>872540109</ns1:cusip>
		<ns1:value>57452</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1254333</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1216278</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>38055</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Toronto-Dominion Bank</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>891160509</ns1:cusip>
		<ns1:value>2471</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>62960</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>53000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>9960</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Toyota Motor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>892331307</ns1:cusip>
		<ns1:value>241</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1991</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>991</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Trimble</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>896239100</ns1:cusip>
		<ns1:value>51562</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1568605</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1524000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>44605</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Tyler Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>902252105</ns1:cusip>
		<ns1:value>549</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1850</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1850</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unilever ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>904767704</ns1:cusip>
		<ns1:value>21498</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>417653</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>392600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>25053</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unilever NY</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>904784709</ns1:cusip>
		<ns1:value>685</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14024</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11324</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Union Pacific</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>907818108</ns1:cusip>
		<ns1:value>46288</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>304262</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4262</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>United Parcel Service, Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>911312106</ns1:cusip>
		<ns1:value>451</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4831</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4831</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>UnitedHealth Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>91324P102</ns1:cusip>
		<ns1:value>393</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1575</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1575</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unity Biotechnology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>91381U101</ns1:cusip>
		<ns1:value>133</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>23000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Verizon Communications</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>92343V104</ns1:cusip>
		<ns1:value>210</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3677</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>377</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>VF</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>918204108</ns1:cusip>
		<ns1:value>804</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>14800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Virtu Financial</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>928254101</ns1:cusip>
		<ns1:value>1115</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>46500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>46500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Visa</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>92826C839</ns1:cusip>
		<ns1:value>948</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>W.W. Grainger</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>384802104</ns1:cusip>
		<ns1:value>21072</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>81600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>80000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1600</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Walt Disney Company</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>254687106</ns1:cusip>
		<ns1:value>258</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2598</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>898</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Xilinx</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>983919101</ns1:cusip>
		<ns1:value>53653</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>616506</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>609600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6906</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Zscaler</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>98980G102</ns1:cusip>
		<ns1:value>438</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Zynga Inc CL A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>98986T108</ns1:cusip>
		<ns1:value>541</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>79000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>79000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
</ns1:informationTable>
