Subject: ffmpeg for DragonFly and FreeBSD
To: None <tech-pkg@NetBSD.org>
From: Steve O'Hara-Smith <steve@sohara.org>
List: tech-pkg
Date: 11/04/2005 15:12:55
This is a multi-part message in MIME format.

--Multipart=_Fri__4_Nov_2005_15_12_55_+0000_mdNXQ8wiW+BoZs2k
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

	Hi,

	The attached replacement for files/grab_bsdbktr.c contains the changes
necessary to build multimedia/ffmpeg on DragonFly and on FreeBSD (minor grumble
to whoever it was removed my FreeBSD header includes in the first place).

	The next release of ffmpeg will include grab_bsdbktr.c with the
FreeBSD and DragonFly headers, perhaps a NetBSD user could send the relevant
patch upstream to get NetBSD supported too.

-- 
C:>WIN                                      |   Directable Mirror Arrays
The computer obeys and wins.                | A better way to focus the sun
You lose and Bill collects.                 |    licences available see
                                            |    http://www.sohara.org/

--Multipart=_Fri__4_Nov_2005_15_12_55_+0000_mdNXQ8wiW+BoZs2k
Content-Type: application/octet-stream;
 name="grab_bsdbktr.c"
Content-Disposition: attachment;
 filename="grab_bsdbktr.c"
Content-Transfer-Encoding: base64

LyoKICogRnJlZUJTRCB2aWRlbyBncmFiIGludGVyZmFjZQogKiBDb3B5cmlnaHQgKGMpIDIwMDIg
U3RldmUgTydIYXJhLVNtaXRoCiAqIGJhc2VkIG9uCiAqICAgICAgICAgICBMaW51eCB2aWRlbyBn
cmFiIGludGVyZmFjZQogKiAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDAwLDIwMDEgR2VyYXJk
IExhbnRhdS4KICogYW5kCiAqICAgICAgICAgICBzaW1wbGVfZ3JhYi5jIENvcHlyaWdodCAoYykg
MTk5OSBSb2dlciBIYXJkaW1hbgogKgogKiBHUEwgdmlydXMgaW5oZXJpdGVkOgogKgogKiBUaGlz
IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
IG1vZGlmeQogKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogKiAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBh
bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzks
IFVTQS4KICovCiNpbmNsdWRlICJhdmZvcm1hdC5oIgojaWYgZGVmaW5lZCBfX0RyYWdvbkZseV9f
CiNpbmNsdWRlIDxkZXYvdmlkZW8vbWV0ZW9yL2lvY3RsX21ldGVvci5oPgojaW5jbHVkZSA8ZGV2
L3ZpZGVvL2JrdHIvaW9jdGxfYnQ4NDguaD4KI2Vsc2UKI2lmIGRlZmluZWQgX19GcmVlQlNEX18K
I2lmIF9fRnJlZUJTRF9fID49IDUwMjEwMAojaW5jbHVkZSA8ZGV2L2JrdHIvaW9jdGxfbWV0ZW9y
Lmg+CiNpbmNsdWRlIDxkZXYvYmt0ci9pb2N0bF9idDg0OC5oPgojZWxzZQojaW5jbHVkZSA8bWFj
aGluZS9pb2N0bF9tZXRlb3IuaD4KI2luY2x1ZGUgPG1hY2hpbmUvaW9jdGxfYnQ4NDguaD4KI2Vu
ZGlmCiNlbHNlCiNpbmNsdWRlIDxkZXYvaWMvYnQ4eHguaD4KI2VuZGlmCiNlbmRpZgojaW5jbHVk
ZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxmY250bC5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNp
bmNsdWRlIDxzeXMvbW1hbi5oPgojaW5jbHVkZSA8c3lzL3RpbWUuaD4KI2luY2x1ZGUgPHNpZ25h
bC5oPgoKdHlwZWRlZiBzdHJ1Y3QgewoJaW50IGZkOwoJaW50IHR1bmVyX2ZkOwoJaW50IGZyYW1l
X2Zvcm1hdDsgLyogc2VlIFZJREVPX1BBTEVUVEVfeHh4ICovCglpbnQgd2lkdGgsIGhlaWdodDsK
CWludCBmcmFtZV9yYXRlOwoJaW50IGZyYW1lX3JhdGVfYmFzZTsKCWludDY0X3QgcGVyX2ZyYW1l
Owp9IFZpZGVvRGF0YTsKCmNvbnN0IGNoYXIgKnZpZGVvX2RldmljZSA9ICIvZGV2L2JrdHIwIjsK
CiNkZWZpbmUgUEFMIDEKI2RlZmluZSBQQUxCREdISSAxCiNkZWZpbmUgTlRTQyAyCiNkZWZpbmUg
TlRTQ00gMgojZGVmaW5lIFNFQ0FNIDMKI2RlZmluZSBQQUxOIDQKI2RlZmluZSBQQUxNIDUKI2Rl
ZmluZSBOVFNDSiA2CgovKiBQQUwgaXMgNzY4IHggNTc2LiBOVFNDIGlzIDY0MCB4IDQ4MCAqLwoj
ZGVmaW5lIFBBTF9IRUlHSFQgNTc2CiNkZWZpbmUgU0VDQU1fSEVJR0hUIDU3NgojZGVmaW5lIE5U
U0NfSEVJR0hUIDQ4MAoKI2lmbmRlZiBWSURFT19GT1JNQVQKI2RlZmluZSBWSURFT19GT1JNQVQg
TlRTQwojZW5kaWYKCnN0YXRpYyBpbnQgYmt0cl9kZXZbXSA9IHsgTUVURU9SX0RFVjAsIE1FVEVP
Ul9ERVYxLCBNRVRFT1JfREVWMiwKICAgICAgICAgICAgICAgICAgIE1FVEVPUl9ERVYzLCBNRVRF
T1JfREVWX1NWSURFTyB9OwoKc3RhdGljIHVfaW50OF90ICp2aWRlb19idWY7CnN0YXRpYyBpbnQg
bnNpZ25hbHMgPSAwOwpzdGF0aWMgdm9pZCBjYXRjaHNpZ25hbChpbnQgc2lnbmFsKQp7Cgluc2ln
bmFscysrOwoJcmV0dXJuOwp9CgpzdGF0aWMgaW50IGJrdHJfaW5pdCAoY29uc3QgY2hhciAqdmlk
ZW9fZGV2aWNlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCglpbnQgZm9ybWF0LCB1X2ludDhfdCAq
KnZpZGVvX2J1ZiwgaW50ICp2aWRlb19mZCwgaW50ICp0dW5lcl9mZCwKCWludCBpZGV2LCBkb3Vi
bGUgZnJlcXVlbmN5KQp7CglzdHJ1Y3QgbWV0ZW9yX2dlb21ldCBnZW87CglpbnQgaF9tYXg7Cgls
b25nIGlvY3RsX2ZyZXF1ZW5jeTsKCWNoYXIgKmFyZzsKCWludCBjOwoJaW50IGNoYW5uZWwgPSAw
OwoJc3RydWN0IHNpZ2FjdGlvbiBhY3Qsb2xkOwoKCWlmIChpZGV2IDwgMCB8fCBpZGV2ID4gNCkK
CXsKCQlhcmcgPSBnZXRlbnYgKCJCS1RSX0RFViIpOwoJCWlmIChhcmcpCgkJCWlkZXYgPSBhdG9p
IChhcmcpOwoJCWlmIChpZGV2IDwgMCB8fCBpZGV2ID4gNCkKCQkJaWRldiA9IDA7Cgl9CgoJaWYg
KGZvcm1hdCA8IDEgfHwgZm9ybWF0ID4gNikKCXsKCQlhcmcgPSBnZXRlbnYgKCJCS1RSX0ZPUk1B
VCIpOwoJCWlmIChhcmcpCgkJCWZvcm1hdCA9IGF0b2kgKGFyZyk7CgkJaWYgKGZvcm1hdCA8IDEg
fHwgZm9ybWF0ID4gNikKCQkJZm9ybWF0ID0gVklERU9fRk9STUFUOwoJfQoKCWlmIChmcmVxdWVu
Y3kgPD0gMCkKCXsKCQlhcmcgPSBnZXRlbnYgKCJCS1RSX0ZSRVFVRU5DWSIpOwoJCWlmIChhcmcp
CgkJCWZyZXF1ZW5jeSA9IGF0b2YgKGFyZyk7CgkJaWYgKGZyZXF1ZW5jeSA8PSAwKQoJCQlmcmVx
dWVuY3kgPSAwLjA7Cgl9CgoJYXJnID0gZ2V0ZW52ICgiQktUUl9DSEFOTkVMIik7CglpZiAoYXJn
KQoJCWNoYW5uZWwgPSBhdG9pIChhcmcpOwoJaWYgKGNoYW5uZWwgPCAwKQoJCWNoYW5uZWwgPSAw
OwoKCW1lbXNldCgmYWN0LDAsc2l6ZW9mKGFjdCkpOwoJc2lnZW1wdHlzZXQoJmFjdC5zYV9tYXNr
KTsKCWFjdC5zYV9oYW5kbGVyICA9IGNhdGNoc2lnbmFsOwoJc2lnYWN0aW9uKFNJR1VTUjEsJmFj
dCwmb2xkKTsKCgkqdHVuZXJfZmQgPSBvcGVuICgiL2Rldi90dW5lcjAiLCBPX1JET05MWSk7Cglp
ZiAoKnR1bmVyX2ZkIDwgMCkgewoJCXBlcnJvcigiV2FybmluZzogVHVuZXIgbm90IG9wZW5lZCBj
b250aW51aW5nIik7Cgl9CgoJKnZpZGVvX2ZkID0gb3BlbiAodmlkZW9fZGV2aWNlLCBPX1JET05M
WSk7CglpZiAoKnZpZGVvX2ZkIDwgMCkgewoJCXBlcnJvciAodmlkZW9fZGV2aWNlKTsKCQlyZXR1
cm4gLTE7Cgl9CgoJZ2VvLnJvd3MgPSBoZWlnaHQ7CglnZW8uY29sdW1ucyA9IHdpZHRoOwoJZ2Vv
LmZyYW1lcyA9IDE7Ci8vCWdlby5vZm9ybWF0ID0gTUVURU9SX0dFT19ZVVZfNDIyIHwgTUVURU9S
X0dFT19ZVVZfMTI7CglnZW8ub2Zvcm1hdCA9IE1FVEVPUl9HRU9fWVVWX1BBQ0tFRDsKCglzd2l0
Y2ggKGZvcm1hdCkgewoJY2FzZSBQQUw6ICAgaF9tYXggPSBQQUxfSEVJR0hUOyAgIGMgPSBCVDg0
OF9JRk9STV9GX1BBTEJER0hJOyBicmVhazsKCWNhc2UgUEFMTjogIGhfbWF4ID0gUEFMX0hFSUdI
VDsgICBjID0gQlQ4NDhfSUZPUk1fRl9QQUxOOyAgICAgYnJlYWs7CgljYXNlIFBBTE06ICBoX21h
eCA9IFBBTF9IRUlHSFQ7ICAgYyA9IEJUODQ4X0lGT1JNX0ZfUEFMTTsgICAgIGJyZWFrOwoJY2Fz
ZSBTRUNBTTogaF9tYXggPSBTRUNBTV9IRUlHSFQ7IGMgPSBCVDg0OF9JRk9STV9GX1NFQ0FNOyAg
ICBicmVhazsKCWNhc2UgTlRTQzogIGhfbWF4ID0gTlRTQ19IRUlHSFQ7ICBjID0gQlQ4NDhfSUZP
Uk1fRl9OVFNDTTsgICAgYnJlYWs7CgljYXNlIE5UU0NKOiBoX21heCA9IE5UU0NfSEVJR0hUOyAg
YyA9IEJUODQ4X0lGT1JNX0ZfTlRTQ0o7ICAgIGJyZWFrOwoJZGVmYXVsdDogICAgaF9tYXggPSBQ
QUxfSEVJR0hUOyAgIGMgPSBCVDg0OF9JRk9STV9GX1BBTEJER0hJOyBicmVhazsKCX0KCWlmICho
ZWlnaHQgPD0gaF9tYXgvMikgewoJCWdlby5vZm9ybWF0IHw9IE1FVEVPUl9HRU9fRVZFTl9PTkxZ
OwoJfQoKCWlmIChpb2N0bCgqdmlkZW9fZmQsIE1FVEVPUlNFVEdFTywgJmdlbykgPCAwKSB7CgkJ
cGVycm9yICgiTUVURU9SU0VUR0VPIik7CgkJcmV0dXJuIC0xOwoJfQoKCWlmIChpb2N0bCgqdmlk
ZW9fZmQsIEJUODQ4U0ZNVCwgJmMpIDwgMCkgewoJCXBlcnJvciAoIkJUODQ4U0ZNVCIpOwoJCXJl
dHVybiAtMTsKCX0KCgljID0gYmt0cl9kZXZbaWRldl07CglpZiAoaW9jdGwoKnZpZGVvX2ZkLCBN
RVRFT1JTSU5QVVQsICZjKSA8IDApIHsKCQlwZXJyb3IgKCJNRVRFT1JTSU5QVVQiKTsKCQlyZXR1
cm4gLTE7Cgl9CgkqdmlkZW9fYnVmID0gKHVfaW50OF90ICopIG1tYXAoKGNhZGRyX3QpMCwgd2lk
dGgqaGVpZ2h0KjIsCgkJUFJPVF9SRUFELCBNQVBfU0hBUkVELCAqdmlkZW9fZmQsIChvZmZfdCkg
MCk7CglpZiAoKnZpZGVvX2J1ZiA9PSBNQVBfRkFJTEVEKSB7CgkJcGVycm9yICgibW1hcCIpOwoJ
CXJldHVybiAtMTsKCX0KCWlmIChmcmVxdWVuY3kgIT0gMC4wKSB7CgkJaW9jdGxfZnJlcXVlbmN5
ICA9ICh1bnNpZ25lZCBsb25nKShmcmVxdWVuY3kqMTYpOyAKCQlpZiAoaW9jdGwoKnR1bmVyX2Zk
LCBUVlRVTkVSX1NFVEZSRVEsICZpb2N0bF9mcmVxdWVuY3kpPDApCgkJCXBlcnJvcigiVFZUVU5F
Ul9TRVRGUkVRIik7Cgl9CglpZiAoY2hhbm5lbCAhPSAwKSB7CgkJaWYgKGlvY3RsKCp0dW5lcl9m
ZCwgVFZUVU5FUl9TRVRDSE5MLCAmY2hhbm5lbCkgPCAwKQoJCQlwZXJyb3IoIlRWVFVORVJfU0VU
Q0hOTCIpOwoJfQoJYyA9IE1FVEVPUl9DQVBfQ09OVElOT1VTOwoJaW9jdGwoKnZpZGVvX2ZkLCBN
RVRFT1JDQVBUVVIsICZjKTsKCWMgPSBTSUdVU1IxOwoJaW9jdGwgKCp2aWRlb19mZCwgTUVURU9S
U1NJR05BTCwgJmMpOwoJcmV0dXJuIDA7Cn0KCnN0YXRpYyB2b2lkIGJrdHJfZ2V0ZnJhbWUodV9p
bnQ2NF90IHBlcl9mcmFtZSkKewoJdV9pbnQ2NF90IGN1cnRpbWU7CglzdGF0aWMgdV9pbnQ2NF90
IGxhc3RfZnJhbWVfdGltZSA9IDA7CgoJY3VydGltZSA9IGF2X2dldHRpbWUoKTsKCWlmICghbGFz
dF9mcmFtZV90aW1lCgkgICAgfHwgKChsYXN0X2ZyYW1lX3RpbWUgKyBwZXJfZnJhbWUpID4gY3Vy
dGltZSkpIHsKCQlpZiAoIXVzbGVlcCAobGFzdF9mcmFtZV90aW1lICsgcGVyX2ZyYW1lICsgcGVy
X2ZyYW1lLzggLSBjdXJ0aW1lKSkgewoJCQlpZiAoIW5zaWduYWxzKQoJCQkJcHJpbnRmICgiXG5T
TEVQVCBOTyBzaWduYWxzIC0gJWQgbWljcm9zZWNvbmRzIGxhdGVcbiIsCgkJCQkgICAgICAgIChp
bnQpIChhdl9nZXR0aW1lKCkgLSBsYXN0X2ZyYW1lX3RpbWUgLSBwZXJfZnJhbWUpKTsKCQl9Cgl9
Cgluc2lnbmFscyA9IDA7CgoJbGFzdF9mcmFtZV90aW1lID0gY3VydGltZTsKfQoKdm9pZCBiZl9t
ZW1jcHkgKGNoYXIgKmRlc3QsIGNoYXIgKnNyYywgaW50IHNpemUpCnsKCXdoaWxlIChzaXplIC09
IDIpCgl7CgkJZGVzdFswXSA9IHNyY1sxXTsKCQlkZXN0WzFdID0gc3JjWzBdOwoJCWRlc3QgKz0g
MjsKCQlzcmMgKz0gMjsKCX0KfQoKLyogbm90ZTogd2Ugc3VwcG9ydCBvbmx5IG9uZSBwaWN0dXJl
IHJlYWQgYXQgYSB0aW1lICovCnN0YXRpYyBpbnQgZ3JhYl9yZWFkX3BhY2tldChBVkZvcm1hdENv
bnRleHQgKnMxLCBBVlBhY2tldCAqcGt0KQp7CglWaWRlb0RhdGEgKnMgPSBzMS0+cHJpdl9kYXRh
OwoJaW50IHNpemUsIGhhbGZzaXplOwoKCXNpemUgPSBzLT53aWR0aCAqIHMtPmhlaWdodDsKCWhh
bGZzaXplID0gc2l6ZSA8PCAxOwoKLy8JaWYgKGF2X25ld19wYWNrZXQocGt0LCBzaXplICsgaGFs
ZnNpemUpIDwgMCkKCWlmIChhdl9uZXdfcGFja2V0KHBrdCwgc2l6ZSArIHNpemUpIDwgMCkKCQly
ZXR1cm4gLUVJTzsKCglia3RyX2dldGZyYW1lIChzLT5wZXJfZnJhbWUpOwoJcGt0LT5wdHMgPSBh
dl9nZXR0aW1lKCkgJiAoKDFMTCA8PCA0OCkgLSAxKTsKCWJmX21lbWNweSAocGt0LT5kYXRhLCB2
aWRlb19idWYsIHNpemUgKyBzaXplKTsKLy8JYmZfbWVtY3B5IChwa3QtPmRhdGEsIHZpZGVvX2J1
Ziwgc2l6ZSArIGhhbGZzaXplKTsKCi8vCXJldHVybiBzaXplICsgaGFsZnNpemU7CglyZXR1cm4g
c2l6ZSArIHNpemU7Cn0KCnN0YXRpYyBpbnQgZ3JhYl9yZWFkX2hlYWRlciAoQVZGb3JtYXRDb250
ZXh0ICpzMSwgIEFWRm9ybWF0UGFyYW1ldGVycyAqYXApCnsKCVZpZGVvRGF0YSAqcyA9IHMxLT5w
cml2X2RhdGE7CglBVlN0cmVhbSAqc3Q7CglpbnQgd2lkdGgsIGhlaWdodDsKCWludCBmcmFtZV9y
YXRlOwoJaW50IGZyYW1lX3JhdGVfYmFzZTsKCWludCBmb3JtYXQgPSAtMTsKCglpZiAoIWFwIHx8
IGFwLT53aWR0aCA8PSAwIHx8IGFwLT5oZWlnaHQgPD0gMCB8fCBhcC0+ZnJhbWVfcmF0ZSA8PSAw
KQoJCXJldHVybiAtMTsKCgl3aWR0aCA9IGFwLT53aWR0aDsKCWhlaWdodCA9IGFwLT5oZWlnaHQ7
CglmcmFtZV9yYXRlID0gYXAtPmZyYW1lX3JhdGU7CglmcmFtZV9yYXRlX2Jhc2UgPSBhcC0+ZnJh
bWVfcmF0ZV9iYXNlOwoKCXN0ID0gYXZfbmV3X3N0cmVhbShzMSwgMCk7CglpZiAoIXN0KQoJCXJl
dHVybiAtRU5PTUVNOwoKCXMtPndpZHRoID0gd2lkdGg7CglzLT5oZWlnaHQgPSBoZWlnaHQ7Cglz
LT5mcmFtZV9yYXRlID0gZnJhbWVfcmF0ZTsKCXMtPmZyYW1lX3JhdGVfYmFzZSA9IGZyYW1lX3Jh
dGVfYmFzZTsKCXMtPnBlcl9mcmFtZSA9ICgoaW50NjRfdCkxMDAwMDAwICogcy0+ZnJhbWVfcmF0
ZV9iYXNlKSAvIHMtPmZyYW1lX3JhdGU7CgoJc3QtPmNvZGVjLmNvZGVjX3R5cGUgPSBDT0RFQ19U
WVBFX1ZJREVPOwovLwlzdC0+Y29kZWMucGl4X2ZtdCA9IFBJWF9GTVRfWVVWNDIwUDsKCXN0LT5j
b2RlYy5waXhfZm10ID0gUElYX0ZNVF9ZVVY0MjI7CglzdC0+Y29kZWMuY29kZWNfaWQgPSBDT0RF
Q19JRF9SQVdWSURFTzsKCXN0LT5jb2RlYy53aWR0aCA9IHdpZHRoOwoJc3QtPmNvZGVjLmhlaWdo
dCA9IGhlaWdodDsKCXN0LT5jb2RlYy5mcmFtZV9yYXRlID0gZnJhbWVfcmF0ZTsKCXN0LT5jb2Rl
Yy5mcmFtZV9yYXRlX2Jhc2UgPSBmcmFtZV9yYXRlX2Jhc2U7CgoJYXZfc2V0X3B0c19pbmZvKHMx
LCA0OCwgMSwgMTAwMDAwMCk7IC8qIDQ4IGJpdHMgcHRzIGluIHVzZSAqLwoKICAgaWYgKGFwLT5z
dGFuZGFyZCkgewoJCWlmICghc3RyY2FzZWNtcChhcC0+c3RhbmRhcmQsICJwYWwiKSkKCQkgICAg
Zm9ybWF0ID0gUEFMOwoJCWlmICghc3RyY2FzZWNtcChhcC0+c3RhbmRhcmQsICJzZWNhbSIpKQoJ
CSAgICBmb3JtYXQgPSBTRUNBTTsKCQlpZiAoIXN0cmNhc2VjbXAoYXAtPnN0YW5kYXJkLCAibnRz
YyIpKQoJCSAgICBmb3JtYXQgPSBOVFNDOwoJfQoKCWlmIChia3RyX2luaXQgKHZpZGVvX2Rldmlj
ZSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCAmdmlkZW9fYnVmLAoJCSAgICAgICAmKHMtPmZkKSwg
JihzLT50dW5lcl9mZCksIC0xLCAwLjApIDwgMCkKCQlyZXR1cm4gLUVJTzsKCXJldHVybiAwOwp9
CgpzdGF0aWMgaW50IGdyYWJfcmVhZF9jbG9zZSAoQVZGb3JtYXRDb250ZXh0ICpzMSkKewoJVmlk
ZW9EYXRhICpzID0gczEtPnByaXZfZGF0YTsKCglpbnQgYyA9IE1FVEVPUl9DQVBfU1RPUF9DT05U
OwoJaW9jdGwocy0+ZmQsIE1FVEVPUkNBUFRVUiwgJmMpOwoJY2xvc2Uocy0+ZmQpOwoJY2xvc2Uo
cy0+dHVuZXJfZmQpOwoJYXZfZnJlZShzKTsKCXJldHVybiAwOwp9CgpBVklucHV0Rm9ybWF0IHZp
ZGVvX2dyYWJfZGV2aWNlX2Zvcm1hdCA9IHsKCSJ2aWRlbzRsaW51eCIsCgkidmlkZW8gZ3JhYiIs
Cgkgc2l6ZW9mKFZpZGVvRGF0YSksCgkgTlVMTCwKCWdyYWJfcmVhZF9oZWFkZXIsCglncmFiX3Jl
YWRfcGFja2V0LAoJZ3JhYl9yZWFkX2Nsb3NlLAoJZmxhZ3M6IEFWRk1UX05PRklMRSwKfTsKCmlu
dCB2aWRlb19ncmFiX2luaXQodm9pZCkKewoJYXZfcmVnaXN0ZXJfaW5wdXRfZm9ybWF0KCZ2aWRl
b19ncmFiX2RldmljZV9mb3JtYXQpOwoJcmV0dXJuIDA7Cn0K

--Multipart=_Fri__4_Nov_2005_15_12_55_+0000_mdNXQ8wiW+BoZs2k--