Date: Fri, 19 Apr 2019 09:16:16 -0500 From: Karl Denninger <karl@denninger.net> To: Per Hedeland <per@hedeland.org> Cc: Ian Lepore <ian@freebsd.org>, freebsd-arm@freebsd.org Subject: Re: I2c producing crazy console messages [[Re: insanely-high interrupt rates -- PARTIAL resolution (Pi2)]] Message-ID: <c0b9cfbc-ea0f-f419-c763-e976f7214c8d@denninger.net> In-Reply-To: <499b53d5-23ed-c33b-3715-018720c536a3@hedeland.org> References: <004ddba628b94b80845d8e509ddcb648d21fd6c9.camel@freebsd.org> <40f57de2-2b25-3981-a416-b9958cc97636@denninger.net> <669892ac3fc37b0843a156c0ab102316829103fd.camel@freebsd.org> <663f2566-b035-7011-70eb-4163b41e6e55@denninger.net> <20190325164827.GL57400@cicely7.cicely.de> <3db9cf8a-68ee-e339-67bf-760ee51464fd@denninger.net> <fc17ac0f77832e840b9fffa9b1074561f1e766d8.camel@freebsd.org> <d96c7f42-f01b-8990-a558-ee92d631b51d@denninger.net> <dc56a8964cae942354cbe2b5b0620f2eebb569bb.camel@freebsd.org> <874l7fyrpr.fsf@news-spur.riddles.org.uk> <701e011f-3088-8ed4-4fbb-6fa93ac698f5@denninger.net> <aefa1d778e7684f71ffed49ce32ee80e2273d033.camel@freebsd.org> <67133e19-2be5-ccd1-2ded-008b36a866ec@denninger.net> <6f6f8471-8624-c5e2-547c-42b712254126@denninger.net> <ec6a5200c9c0b255094f6a46a1d2f95cd9334ea6.camel@freebsd.org> <8bcdb1e1-e561-6255-848d-e532ad4d5918@denninger.net> <499b53d5-23ed-c33b-3715-018720c536a3@hedeland.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format. --------------ms000500040108010408050301 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 4/19/2019 06:32, Per Hedeland wrote: > On 2019-04-19 03:25, Karl Denninger wrote: >> >> On 4/18/2019 17:57, Ian Lepore wrote: >>> On Thu, 2019-04-18 at 16:51 -0500, Karl Denninger wrote: >>>> Up until 12.0 this code both worked and did *not* generate complaint= s >>>> about unhandled interrupts.=A0 It still runs fine and returns valid >>>> data >>>> BUT if there are any analog endpoints actually on the bus that the >>>> code >>>> can read then it generates a lot of these: >>>> >>>> local_intc0: Spurious interrupt detected >>>> local_intc0: Spurious interrupt detected >>>> intc0: Spurious interrupt detected >>>> >>>> ..... >>>> >>>> If I do not connect the I2c device then there are no messages.=A0 If= I >>>> stop the code that is running (e.g. no accesses to the i2c bus) then= >>>> the >>>> messages stop as well, so it's not something that happens but remain= s >>>> active after the code halts; it's happening on the actual accesses t= o >>>> the bus from those ioctl's. >>> Hmm, another interesting question occurred to me:=A0 Can you tell whe= ther >>> you are getting multiple spurious interrupt messages per single >>> transfer your code does, or is it one per transfer, or more >>> intermittent, like not on every transfer? >>> >>> -- Ian >> >> It logs the message on "many" accesses, but not all. >> >> The code scans each of the declared analogs once per second.=A0 There = are >> two inputs defined on this unit right now, so if it was on every acces= s >> there would be two messages per second logged, and there isn't; nor is= >> it "one per cluster" of accesses.=A0 I removed the reset and restarted= the >> code and this is the frequency of log entries I'm getting, which impli= es >> frequent and random, but much less than 1:1. >> >> Apr 18 20:22:25 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:26 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected >> Apr 18 20:22:27 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:33 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected >> Apr 18 20:22:36 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:38 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected >> Apr 18 20:22:39 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:40 Pool-MCP syslogd: last message repeated 1 times >> Apr 18 20:22:40 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected >> Apr 18 20:22:42 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:49 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected >> Apr 18 20:22:52 Pool-MCP kernel: intc0: Spurious interrupt detected >> Apr 18 20:22:53 Pool-MCP kernel: local_intc0: Spurious interrupt >> detected > > Hm, I've recently gotten an i2c device to work on RPi - FWIW it's an > ads1015 AD-converter, my code is pretty similar to yours - you may > actually be using the same device - and I don't see *any* "Spurious > interrupt" messages when using it. But a) I've only run it on RPi Zero > (currently connected) and RPi 1B (briefly when testing), and b) I > don't have a console connected (but I assume the messages should also > show up in dmesg and /var/log/messages, the above seems to be from the > log). > > But anyway I would be *extremely* surprised if I saw them, since AFAIU > the i2c bus per se has no concept of interrupts - you need to connect > some other wire from the device to e.g. a gpio pin (with appropriate > config) in order to generate interrupts - and I haven't done that. (The= > ads1015 does have an ALERT/RDY pin that could potentially be used for > it, but since FreeBSD AFAIK doesn't have a way to deliver the > interrupts to userland code, I had no interest in it.) Correct.=A0 Indeed these are ADS1015s -- the code also supports ads1115s.= =A0 The delay for conversion is different, thus the multiplier (you set a different constant in the config file) plus, of course, the shift required for 12-bit alignment into a 16-bit result. > > So, your code like mine doesn't seem to use interrupts at all - do you > nevertheless have some interrupt-generating connection from the > device?=20 No.=A0 Thus the delay for conversion via usleep within my code since there's no way for a device on the I2c bus itself (at least as far as I know) to alert that the conversion is complete.=A0 While theoretically I could use the Alert/RDY pin I do not at present. The spurious interrupt message is coming from sys/arm/broadcom/bcm2835/bcm2835_intr.c -- which is, of course, not present in a RPI3 build since that's aarch64 (the "arm64" branch of the sys tree) and not arm. But the below is indeed interesting.... > And if these interrupts really happen only on RPi 2 and not on > any of 0/1/3, I guess it makes sense to look at the dts/dtb files. > Diffing bcm2708-rpi-0-w.dts and bcm2709-rpi-2-b.dts, I see this: > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 interrupt-controller@7e00= b200 { > > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com= patible =3D "brcm,bcm2835-armctrl-ic"; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com= patible =3D "brcm,bcm2836-armctrl-ic"; > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 r= eg =3D <0x7e00b200 0x200>; > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 i= nterrupt-controller; > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 #= interrupt-cells =3D <0x2>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int= errupt-parent =3D <0x3>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int= errupts =3D <0x8>; > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 p= handle =3D <0x1>; > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }; > > and this: > > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 local_intc@40000000 { > + > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com= patible =3D "brcm,bcm2836-l1-intc"; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 reg= =3D <0x40000000 0x100>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int= errupt-controller; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 #in= terrupt-cells =3D <0x1>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int= errupt-parent =3D <0x3>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pha= ndle =3D <0x3>; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }; > > I have (as yet) no idea what it actually means, but it clearly seems > to be interrupt-related... There are a few more "interrupt-related" > diffs, but those two kind of "stand out" for me. Btw, shouldn't these > .dts files exist somewhere under /usr/src/sys/gnu/dts/arm? I > decompiled them from the .dtb's in installed images to be able to > compare... > > --Per Hedeland The "newer build environment" has both rpi-firmware and u-boot running off packages/ports, which are nominally in /usr/local/share; in this case /usr/local/share/rpi-firmware.=A0 The dtb files are there, but not the source dts files.=A0 FreeBSD picks up the binary dtb files; it does not compile the .dts files at build time. root@NewFS:/usr/local/share/rpi-firmware # ls -al total 9427 drwxr-xr-x=A0=A0=A0 3 root=A0 wheel=A0=A0=A0=A0=A0=A0 26 Feb 10 12:08 . drwxr-xr-x=A0 112 root=A0 wheel=A0=A0=A0=A0=A0 113 Mar=A0 4 11:31 .. -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 18693 Nov 12 10:05 COPYING.l= inux -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 1494 Nov 12 10:05 LICENCE= =2Ebroadcom -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 5888 Feb=A0 8 11:55 armst= ub8.bin -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 23315 Nov 12 10:05 bcm2708-r= pi-0-w.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 23071 Nov 12 10:05 bcm2708-r= pi-b-plus.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 22812 Nov 12 10:05 bcm2708-r= pi-b.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 22589 Nov 12 10:05 bcm2708-r= pi-cm.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 24115 Nov 12 10:05 bcm2709-r= pi-2-b.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 25574 Nov 12 10:05 bcm2710-r= pi-3-b-plus.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 25311 Nov 12 10:05 bcm2710-r= pi-3-b.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 24087 Nov 12 10:05 bcm2710-r= pi-cm3.dtb -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 52116 Nov 12 10:05 bootcode.= bin -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0=A0 89 Feb=A0 8 11:55 c= onfig.txt -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0 151 Feb=A0 8 11:55 con= fig_rpi3.txt -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0 114 Feb=A0 8 11:55 con= fig_rpi_0_w.txt -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 6666 Nov 12 10:05 fixup.d= at -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 2621 Nov 12 10:05 fixup_c= d.dat -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 9895 Nov 12 10:05 fixup_d= b.dat -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 9895 Nov 12 10:05 fixup_x= =2Edat drwxr-xr-x=A0=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 151 Feb 10 12:08 overl= ays -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 2857060 Nov 12 10:05 start.elf -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0 678532 Nov 12 10:05 start_cd.el= f -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 5120484 Nov 12 10:05 start_db.elf -rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 4057956 Nov 12 10:05 start_x.elf root@NewFS:/usr/local/share/rpi-firmware # pkg info |grep rpi rpi-firmware-1.20181112=A0=A0=A0=A0=A0=A0=A0 Firmware for RaspberryPi Sin= gle Board Computer u-boot-rpi2-2019.01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Cross-build das u-bo= ot for model rpi2 u-boot-rpi3-2019.01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Cross-build das u-bo= ot for model rpi3 --=20 Karl Denninger karl@denninger.net <mailto:karl@denninger.net> /The Market Ticker/ /[S/MIME encrypted email preferred]/ --------------ms000500040108010408050301 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC DdgwggagMIIEiKADAgECAhMA5EiKghDOXrvfxYxjITXYDdhIMA0GCSqGSIb3DQEBCwUAMIGL MQswCQYDVQQGEwJVUzEQMA4GA1UECAwHRmxvcmlkYTESMBAGA1UEBwwJTmljZXZpbGxlMRkw FwYDVQQKDBBDdWRhIFN5c3RlbXMgTExDMRgwFgYDVQQLDA9DdWRhIFN5c3RlbXMgQ0ExITAf BgNVBAMMGEN1ZGEgU3lzdGVtcyBMTEMgMjAxNyBDQTAeFw0xNzA4MTcxNjQyMTdaFw0yNzA4 MTUxNjQyMTdaMHsxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdGbG9yaWRhMRkwFwYDVQQKDBBD dWRhIFN5c3RlbXMgTExDMRgwFgYDVQQLDA9DdWRhIFN5c3RlbXMgQ0ExJTAjBgNVBAMMHEN1 ZGEgU3lzdGVtcyBMTEMgMjAxNyBJbnQgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQC1aJotNUI+W4jP7xQDO8L/b4XiF4Rss9O0B+3vMH7Njk85fZ052QhZpMVlpaaO+sCI KqG3oNEbuOHzJB/NDJFnqh7ijBwhdWutdsq23Ux6TvxgakyMPpT6TRNEJzcBVQA0kpby1DVD 0EKSK/FrWWBiFmSxg7qUfmIq/mMzgE6epHktyRM3OGq3dbRdOUgfumWrqHXOrdJz06xE9NzY vc9toqZnd79FUtE/nSZVm1VS3Grq7RKV65onvX3QOW4W1ldEHwggaZxgWGNiR/D4eosAGFxn uYeWlKEC70c99Mp1giWux+7ur6hc2E+AaTGh+fGeijO5q40OGd+dNMgK8Es0nDRw81lRcl24 SWUEky9y8DArgIFlRd6d3ZYwgc1DMTWkTavx3ZpASp5TWih6yI8ACwboTvlUYeooMsPtNa9E 6UQ1nt7VEi5syjxnDltbEFoLYcXBcqhRhFETJe9CdenItAHAtOya3w5+fmC2j/xJz29og1KH YqWHlo3Kswi9G77an+zh6nWkMuHs+03DU8DaOEWzZEav3lVD4u76bKRDTbhh0bMAk4eXriGL h4MUoX3Imfcr6JoyheVrAdHDL/BixbMH1UUspeRuqQMQ5b2T6pabXP0oOB4FqldWiDgJBGRd zWLgCYG8wPGJGYgHibl5rFiI5Ix3FQncipc6SdUzOQIDAQABo4IBCjCCAQYwHQYDVR0OBBYE FF3AXsKnjdPND5+bxVECGKtc047PMIHABgNVHSMEgbgwgbWAFBu1oRhUMNEzjODolDka5k4Q EDBioYGRpIGOMIGLMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHRmxvcmlkYTESMBAGA1UEBwwJ TmljZXZpbGxlMRkwFwYDVQQKDBBDdWRhIFN5c3RlbXMgTExDMRgwFgYDVQQLDA9DdWRhIFN5 c3RlbXMgQ0ExITAfBgNVBAMMGEN1ZGEgU3lzdGVtcyBMTEMgMjAxNyBDQYIJAKxAy1WBo2kY MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IC AQCB5686UCBVIT52jO3sz9pKuhxuC2npi8ZvoBwt/IH9piPA15/CGF1XeXUdu2qmhOjHkVLN gO7XB1G8CuluxofOIUce0aZGyB+vZ1ylHXlMeB0R82f5dz3/T7RQso55Y2Vog2Zb7PYTC5B9 oNy3ylsnNLzanYlcW3AAfzZcbxYuAdnuq0Im3EpGm8DoItUcf1pDezugKm/yKtNtY6sDyENj tExZ377cYA3IdIwqn1Mh4OAT/Rmh8au2rZAo0+bMYBy9C11Ex0hQ8zWcvPZBDn4v4RtO8g+K uQZQcJnO09LJNtw94W3d2mj4a7XrsKMnZKvm6W9BJIQ4Nmht4wXAtPQ1xA+QpxPTmsGAU0Cv HmqVC7XC3qxFhaOrD2dsvOAK6Sn3MEpH/YrfYCX7a7cz5zW3DsJQ6o3pYfnnQz+hnwLlz4MK 17NIA0WOdAF9IbtQqarf44+PEyUbKtz1r0KGeGLs+VGdd2FLA0e7yuzxJDYcaBTVwqaHhU2/ Fna/jGU7BhrKHtJbb/XlLeFJ24yvuiYKpYWQSSyZu1R/gvZjHeGb344jGBsZdCDrdxtQQcVA 6OxsMAPSUPMrlg9LWELEEYnVulQJerWxpUecGH92O06wwmPgykkz//UmmgjVSh7ErNvL0lUY UMfunYVO/O5hwhW+P4gviCXzBFeTtDZH259O7TCCBzAwggUYoAMCAQICEwCg0WvVwekjGFiO 62SckFwepz0wDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB0Zsb3Jp ZGExGTAXBgNVBAoMEEN1ZGEgU3lzdGVtcyBMTEMxGDAWBgNVBAsMD0N1ZGEgU3lzdGVtcyBD QTElMCMGA1UEAwwcQ3VkYSBTeXN0ZW1zIExMQyAyMDE3IEludCBDQTAeFw0xNzA4MTcyMTIx MjBaFw0yMjA4MTYyMTIxMjBaMFcxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdGbG9yaWRhMRkw FwYDVQQKDBBDdWRhIFN5c3RlbXMgTExDMRswGQYDVQQDDBJrYXJsQGRlbm5pbmdlci5uZXQw ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+HVSyxVtJhy3Ohs+PAGRuO//Dha9A 16l5FPATr6wude9zjX5f2lrkRyU8vhCXTZW7WbvWZKpcZ8r0dtZmiK9uF58Ec6hhvfkxJzbg 96WHBw5Fumd5ahZzuCJDtCAWW8R7/KN+zwzQf1+B3MVLmbaXAFBuKzySKhKMcHbK3/wjUYTg y+3UK6v2SBrowvkUBC+jxNg3Wy12GsTXcUS/8FYIXgVVPgfZZrbJJb5HWOQpvvhILpPCD3xs YJFNKEPltXKWHT7Qtc2HNqikgNwj8oqOb+PeZGMiWapsatKm8mxuOOGOEBhAoTVTwUHlMNTg 6QUCJtuWFCK38qOCyk9Haj+86lUU8RG6FkRXWgMbNQm1mWREQhw3axgGLSntjjnznJr5vsvX SYR6c+XKLd5KQZcS6LL8FHYNjqVKHBYM+hDnrTZMqa20JLAF1YagutDiMRURU23iWS7bA9tM cXcqkclTSDtFtxahRifXRI7Epq2GSKuEXe/1Tfb5CE8QsbCpGsfSwv2tZ/SpqVG08MdRiXxN 5tmZiQWo15IyWoeKOXl/hKxA9KPuDHngXX022b1ly+5ZOZbxBAZZMod4y4b4FiRUhRI97r9l CxsP/EPHuuTIZ82BYhrhbtab8HuRo2ofne2TfAWY2BlA7ExM8XShMd9bRPZrNTokPQPUCWCg CdIATQIDAQABo4IBzzCCAcswPAYIKwYBBQUHAQEEMDAuMCwGCCsGAQUFBzABhiBodHRwOi8v b2NzcC5jdWRhc3lzdGVtcy5uZXQ6ODg4ODAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIF oDAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDMGCWCG SAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGllbnQgQ2VydGlmaWNhdGUwHQYDVR0O BBYEFLElmNWeVgsBPe7O8NiBzjvjYnpRMIHKBgNVHSMEgcIwgb+AFF3AXsKnjdPND5+bxVEC GKtc047PoYGRpIGOMIGLMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHRmxvcmlkYTESMBAGA1UE BwwJTmljZXZpbGxlMRkwFwYDVQQKDBBDdWRhIFN5c3RlbXMgTExDMRgwFgYDVQQLDA9DdWRh IFN5c3RlbXMgQ0ExITAfBgNVBAMMGEN1ZGEgU3lzdGVtcyBMTEMgMjAxNyBDQYITAORIioIQ zl6738WMYyE12A3YSDAdBgNVHREEFjAUgRJrYXJsQGRlbm5pbmdlci5uZXQwDQYJKoZIhvcN AQELBQADggIBAJXboPFBMLMtaiUt4KEtJCXlHO/3ZzIUIw/eobWFMdhe7M4+0u3te0sr77QR dcPKR0UeHffvpth2Mb3h28WfN0FmJmLwJk+pOx4u6uO3O0E1jNXoKh8fVcL4KU79oEQyYkbu 2HwbXBU9HbldPOOZDnPLi0whi/sbFHdyd4/w/NmnPgzAsQNZ2BYT9uBNr+jZw4SsluQzXG1X lFL/qCBoi1N2mqKPIepfGYF6drbr1RnXEJJsuD+NILLooTNf7PMgHPZ4VSWQXLNeFfygoOOK FiO0qfxPKpDMA+FHa8yNjAJZAgdJX5Mm1kbqipvb+r/H1UAmrzGMbhmf1gConsT5f8KU4n3Q IM2sOpTQe7BoVKlQM/fpQi6aBzu67M1iF1WtODpa5QUPvj1etaK+R3eYBzi4DIbCIWst8MdA 1+fEeKJFvMEZQONpkCwrJ+tJEuGQmjoQZgK1HeloepF0WDcviiho5FlgtAij+iBPtwMuuLiL shAXA5afMX1hYM4l11JXntle12EQFP1r6wOUkpOdxceCcMVDEJBBCHW2ZmdEaXgAm1VU+fnQ qS/wNw/S0X3RJT1qjr5uVlp2Y0auG/eG0jy6TT0KzTJeR9tLSDXprYkN2l/Qf7/nT6Q03qyE QnnKiBXWAZXveafyU/zYa7t3PTWFQGgWoC4w6XqgPo4KV44OMYIFBzCCBQMCAQEwgZIwezEL MAkGA1UEBhMCVVMxEDAOBgNVBAgMB0Zsb3JpZGExGTAXBgNVBAoMEEN1ZGEgU3lzdGVtcyBM TEMxGDAWBgNVBAsMD0N1ZGEgU3lzdGVtcyBDQTElMCMGA1UEAwwcQ3VkYSBTeXN0ZW1zIExM QyAyMDE3IEludCBDQQITAKDRa9XB6SMYWI7rZJyQXB6nPTANBglghkgBZQMEAgMFAKCCAkUw GAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTkwNDE5MTQxNjE2 WjBPBgkqhkiG9w0BCQQxQgRA+UGtSi8m+C3AKJ21B1upz/43quIyXvC0p2ESD7IcDtcIiwSw d2drzcT7xx+sk+vhsMefmVo+HRJK2wabAJx6hDBsBgkqhkiG9w0BCQ8xXzBdMAsGCWCGSAFl AwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3 DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGjBgkrBgEEAYI3EAQxgZUwgZIwezEL MAkGA1UEBhMCVVMxEDAOBgNVBAgMB0Zsb3JpZGExGTAXBgNVBAoMEEN1ZGEgU3lzdGVtcyBM TEMxGDAWBgNVBAsMD0N1ZGEgU3lzdGVtcyBDQTElMCMGA1UEAwwcQ3VkYSBTeXN0ZW1zIExM QyAyMDE3IEludCBDQQITAKDRa9XB6SMYWI7rZJyQXB6nPTCBpQYLKoZIhvcNAQkQAgsxgZWg gZIwezELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB0Zsb3JpZGExGTAXBgNVBAoMEEN1ZGEgU3lz dGVtcyBMTEMxGDAWBgNVBAsMD0N1ZGEgU3lzdGVtcyBDQTElMCMGA1UEAwwcQ3VkYSBTeXN0 ZW1zIExMQyAyMDE3IEludCBDQQITAKDRa9XB6SMYWI7rZJyQXB6nPTANBgkqhkiG9w0BAQEF AASCAgBmTNDoyn9Ps9RX/XwQYGRn0IHQ5L6RIhhjjoN5EN0a3yFSpgp890EAWVmVcI/74oM5 2k1IhrZaq+/sOKT9In3DdcJkFX9dTnpQsAObqPDkfQhArrtfqin0z8jj6jChhb+wtJwM1NOJ e8syEKRNWWVyC6RtDBdYMZNVSCDHlaq2DSwVXA+vSfYz6hugpCvYreVzzECCTUYt7j9T7rOc YNtrIE45h8n4IxonymXDGB2Gz4hDamLoxmXQEECyIz7TrPUretUbjDeNXE6pRzTg1saUBb/q iWKUSZDCQRPvE12NSIul1KHvccpBfJIsZNsiw81BGFKCDZwEJmQeC6/x/Bbn5F/ZnZ78ei2N l+J/ubNS8V2VYu2B4baxqcfYVXr9jerFVCu68hGsHSnAdmXk4zfwwu+LmziOc7vqET3LVyAW AyLpQOiAdPUcytZr3WjD4YAwdzmlwppdNe/vyL6eAVkep/E3RwudburSbh9lKHOF3WRQWZ6I sf2Iab/5kbUO31QTDibdveRwS822UJtdxn21EusESK5HKvsj2Ccx/qfLEBebiwO3prMEJRZ6 W/P6mgLYnkiHHbOY3vfhhlKSKGDz7u6mcdruzMi1mZjjBBYor8ZqUBh5WJwoD6lUhmyS87xX OzzuyhOUk7vfKz6So8MYSKoCf5Lvzqp2vd5cFfxgywAAAAAAAA== --------------ms000500040108010408050301--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c0b9cfbc-ea0f-f419-c763-e976f7214c8d>