[OpenAFS] ssh and afs

Jason Garman jgarman@wedgie.org
Sun, 5 May 2002 13:34:34 -0400


--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii

On Fri, May 03, 2002 at 02:53:40PM -0400, Derek T. Yarnell wrote:
> damn...
> 
I attacked this problem a slightly different way.  I took the aklog code
from the krb5-afs toolkit and made it into a linkable library.  Now you
can link against -laklog which exports an aklog() and unlog() function.

I don't know if this is the "best" way of going about things, but it
seemed like the cleanest at the time...

Attached is k5afs.tar which is the library source, basically a pruned down
version of Ken's aklog, and an OpenSSH diffs file which also includes
basic instructions on how to get OpenSSH to compile with the aklog
library.

Let me know if you have any problems, I've tested this on Linux and
Solaris 8 so far...

enjoy
-- 
Jason Garman / jgarman@wedgie.org

--ikeVEW9yuYc//A+q
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="k5afs.tar"
Content-Transfer-Encoding: base64

azVhZnMvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA0MDc1NSAA
ICAxNzUzIAAgIDE3NTMgACAgICAgICAgICAwICA3NDY1MjI3MjI1ICAxMTM1NAAgNQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGpnYXJt
YW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamdhcm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrNWFmcy9DVlMvAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAIDQwNzU1IAAgIDE3NTMgACAgMTc1MyAAICAgICAgICAgIDAg
IDc0NjUyMjcyMjUgIDEyMDA3ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAHVzdGFyICAAamdhcm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq
Z2FybWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGs1
YWZzL0NWUy9Sb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMDA2NDQgACAg
MTc1MyAAICAxNzUzIAAgICAgICAgICAxNSAgNzQ2MDM0NjE3MSAgMTI3MDMAIDAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABqZ2FybWFu
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpnYXJtYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL3N0b3JhZ2UvY3ZzCgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrNWFm
cy9DVlMvUmVwb3NpdG9yeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTAwNjQ0IAAgIDE3
NTMgACAgMTc1MyAAICAgICAgICAgIDYgIDc0NjAzNDYxNzEgIDE0MTE3ACAwAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAamdhcm1hbgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqZ2FybWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGs1YWZzCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAazVhZnMv
Q1ZTL0VudHJpZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwMDY0NCAAICAxNzUz
IAAgIDE3NTMgACAgICAgICAgNDAxICA3NDY1MjI3MjI1ICAxMzQxMwAgMAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGpnYXJtYW4AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAamdhcm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAvVE9ETy8xLjEuMS4xL1NhdCBBcHIgMjAgMjA6MTU6Mzcg
MjAwMi8vCi9hZGRlcnJ0YWJsZS5jLzEuMS4xLjEvU2F0IEFwciAyMCAyMDoxNTozNyAyMDAy
Ly8KL2FrbG9nLmgvMS4xLjEuMS9TYXQgQXByIDIwIDIwOjE1OjM3IDIwMDIvLwovTWFrZWZp
bGUvMS4yL1N1biBNYXkgIDUgMTM6MDc6MzMgMjAwMi8vCi9ha2xvZy5jLzEuMi9TdW4gTWF5
ICA1IDEzOjA3OjMzIDIwMDIvLwovbWFpbi5jLzEuMi9TdW4gTWF5ICA1IDEzOjA3OjMzIDIw
MDIvLwpECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGs1YWZzL01h
a2VmaWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMDA2NDQgACAgMTc1MyAA
ICAxNzUzIAAgICAgICAgMTM2MyAgNzQ2NTIyNzIyNSAgMTMxMTQAIDAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABqZ2FybWFuAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAGpnYXJtYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAACiMgTWFrZWZpbGUgZm9yIGs1YWZzCiMKCkNDPWdjYwpMRD1n
Y2MKQVI9L3Vzci9iaW4vYXIKIyBzb2xhcmlzIGlzIC91c3IvY2NzL2Jpbi9hcgpSQU5MSUI9
cmFubGliCgpPUFQ9LWcKSU5DTFVERVM9LUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL2tl
cmJlcm9zL2luY2x1ZGUKCkNGTEFHUz0kKE9QVCkgJChJTkNMVURFUykKCiMKIyBsaWJyYXJp
ZXMgLWxzb2NrZXQgLWxuc2wgLWxyZXNvbHYgbmVlZGVkIGZvciBzb2xhcmlzCkxJQlM9LUwv
dXNyL2xvY2FsL2xpYiAtTC91c3Iva2VyYmVyb3MvbGliIC1sa3JiNTI0IC1sa3JiNSAtbGs1
Y3J5cHRvICAtbHJlc29sdgpBRlNMSUJTPS1ML3Vzci9sb2NhbC9saWIgLUwvdXNyL2xvY2Fs
L2xpYi9hZnMgLWxzeXMgLWxwcm90IC1sdWJpayAtbGF1dGggLWxyeGthZCAtbHJ4IC1sbHdw
IC1sZGVzIC1sc3lzIC91c3IvbG9jYWwvbGliL2Fmcy91dGlsLmEgLWxjb21fZXJyCgpBS0xP
R19PQkpTPWFrbG9nLm8gYWRkZXJydGFibGUubwoKYWxsOiBsaWJha2xvZy5hIGFrbG9nCmxp
YmFrbG9nLmE6ICQoQUtMT0dfT0JKUykKCSQoQVIpIHJ2ICRAICQoQUtMT0dfT0JKUykKCSQo
UkFOTElCKSAkQAoKYWtsb2c6ICQoQUtMT0dfT0JKUykgbWFpbi5vCgkkKExEKSAtbyBha2xv
ZyBtYWluLm8gJChBS0xPR19PQkpTKSAkKEtSQjUyNExJQikgJChMSUJTKSAkKFNZU0xJQlMp
ICQoQUZTTElCUykgJChPVEhFUkxJQlMpCgpjbGVhbjoKCXJtIC1mIGFrbG9nIGxpYmFrbG9n
LmEgJChBS0xPR19PQkpTKQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGs1YWZzL1RPRE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAxMDA2NDQgACAgMTc1MyAAICAxNzUzIAAgICAgICAgIDYyNyAgNzQ2MDM0NjE1
MSAgMTIxMjEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAdXN0YXIgIABqZ2FybWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpnYXJtYW4AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVE9ETyBsaXN0OgoK
LSBhY3R1YWxseSBzZXBhcmF0ZSBvdXQgdGhlIGFrbG9nIGNvZGUgZnJvbSBtYWluIGludG8g
YW4gZXh0ZXJuYWxseQogIGNhbGxhYmxlIGZ1bmN0aW9uCi0gbWltaWMgdGhlIGtyYmFmcyBs
aWJyYXJ5IGludGVyZmFjZSB0aGF0IGNvbWVzIHdpdGggaGVpbWRhbAotIGludGVncmF0ZSBp
bnRvIHRlbG5ldGQgYW5kIHNzaGQKLSBjbGVhbiB1cCAtV2FsbCB3YXJuaW5ncwotIHRlc3Qg
dGVzdCB0ZXN0Ci0gY29tbWVudCBjb21tZW50IGNvbW1lbnQKLSBsb29rIGF0IGhvdyB0byBi
ZXN0IHJlbmV3IHRpY2tldHMgJiB0b2tlbnMgdHJhbnNwYXJlbnRseQotIGZvciBsYXRlci4u
LiBpbiBhIHNlcGFyYXRlIHByb2R1Y3QsIHF0IGludGVyZmFjZSBmb3IgYWZzIHZvbHVtZXMs
CiAgdXNlcnMsIGV0Yy4uLgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABrNWFmcy9hZGRlcnJ0YWJsZS5jAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMTAwNjQ0IAAgIDE3NTMgACAgMTc1MyAAICAgICAgIDE2MDMgIDc0NjAzNDYxNTEg
IDE0MDYxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AHVzdGFyICAAamdhcm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqZ2FybWFuAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qCiAqICRJZDogYWRk
ZXJydGFibGUuYyx2IDEuMS4xLjEgMjAwMi8wNC8yMCAyMDoxNTozNyBqZ2FybWFuIEV4cCAk
CiAqCiAqIGFkZGVycnRhYmxlIC0gQSByZXBsYWNlbWVudCBmb3IgdGhlIEFGUyAiYWRkX3Rv
X2Vycm9yX3RhYmxlIiBmdW5jdGlvbgogKgogKiBTaWdoLCB0aGlzIGxvc3NhZ2UgaXMgbmVj
ZXNzYXJ5IGJlY2F1c2UgaW4gQUZTIDMuNSwgVHJhbnNhcmMgbWFkZSBwcml2YXRlCiAqIHRo
ZSBfZXRfbGlzdCBzeW1ib2wgYW5kIHJlcGxhY2VkIGl0IHdpdGggYSBmdW5jdGlvbiBjYWxs
ZWQKICogImFkZF90b19lcnJvcl90YWJsZSIuICBCZWNhdXNlIHRoZSBWNSBsaWJyYXJ5IGRl
cGVuZHMgb24gdGhlIGV4aXN0YW5jZQogKiBvZiBfZXRfbGlzdCwgaGVyZSBpcyBhIHN0dWIg
YWRkX3RvX2Vycm9yX3RhYmxlIGZ1bmN0aW9uIHRoYXQgZG9lcwogKiBhbGwgb2YgdGhlIHN0
dWZmIG5lY2Vzc2FyeSB0byBhZGQgYW4gZXJyb3IgdGFibGUgdG8gdGhlIG1hc3RlciBsaXN0
LgogKiBOb3RlIHRoYXQgd2UncmUgbm90IGRvaW5nIGFueSBsb2NraW5nICh3aGljaCBJIGRv
bid0IHRoaW5rIGlzIGEgcHJvYmxlbQogKiBpbiB0aGUgc2luZ2xlLXRocmVhZGVkIGNhc2Up
LgogKgogKi8KCiNpZm5kZWYgTElOVApzdGF0aWMgY2hhciByY3NfaWRbXT0KCSIkSWQ6IGFk
ZGVycnRhYmxlLmMsdiAxLjEuMS4xIDIwMDIvMDQvMjAgMjA6MTU6Mzcgamdhcm1hbiBFeHAg
JCI7CiNlbmRpZgoKI2luY2x1ZGUgPGFmcy9lcnJvcl90YWJsZS5oPgoKZXh0ZXJuIHN0cnVj
dCBldF9saXN0ICpfZXRfbGlzdDsKCnZvaWQKYWRkX3RvX2Vycm9yX3RhYmxlKHN0cnVjdCBl
dF9saXN0ICpuZXdfdGFibGUpCnsKCW5ld190YWJsZS0+bmV4dCA9IF9ldF9saXN0OwoJX2V0
X2xpc3QgPSBuZXdfdGFibGU7Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrNWFmcy9ha2xvZy5jAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTAwNjQ0IAAgIDE3NTMgACAgMTc1MyAA
ICAgICAgMTIxMjUgIDc0NjUyMjcyMjUgIDEyNzMzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAamdhcm1hbgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAABqZ2FybWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAC8qCiAqICRJZDogYWtsb2cuYyx2IDEuMiAyMDAyLzA0LzI0IDE0OjA4OjA0
IGpnYXJtYW4gRXhwICQKICoKICogYWtsb2cuYyA6IERlZmluZXMgdGhlIGFrbG9nIGxpYnJh
cnkgZnVuY3Rpb24gY2FsbAogKi8KCiNpbmNsdWRlICJha2xvZy5oIgoKI2luY2x1ZGUgPHN0
ZGlvLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiNp
bmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8bWVtb3J5
Lmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2luY2x1ZGUg
PGtlcmJlcm9zSVYva3JiLmg+CiNpbmNsdWRlIDxrcmI1Lmg+CgojaW5jbHVkZSA8YWZzL3N0
ZHMuaD4KI2luY2x1ZGUgPGFmcy9hdXRoLmg+CiNpbmNsdWRlIDxyeC9yeGthZC5oPgojaW5j
bHVkZSA8YWZzL3N0ZHMuaD4KI2luY2x1ZGUgPGFmcy9jb21fZXJyLmg+CiNpbmNsdWRlIDxh
ZnMvcGFyYW0uaD4KI2luY2x1ZGUgPGFmcy9jZWxsY29uZmlnLmg+CiNpbmNsdWRlIDxhZnMv
dmljZS5oPgojaW5jbHVkZSA8YWZzL3ZlbnVzLmg+CiNpbmNsdWRlIDxhZnMvcHRzZXJ2ZXIu
aD4KCi8qCiAqIFByb3RvdHlwZXMgdGhhdCBTSE9VTEQgYmUgaW4gJElOQ0xVREUvYWZzLyBi
dXQgdGhleSBhaW4ndAogKi8KCmV4dGVybiBpbnQgYWZzY29uZl9HZXRMb2NhbENlbGwgKHN0
cnVjdCBhZnNjb25mX2RpciAqLCBjaGFyICosIGludCk7CmV4dGVybiBpbnQgYWZzY29uZl9H
ZXRDZWxsSW5mbyAoc3RydWN0IGFmc2NvbmZfZGlyICosIGNoYXIgKiwgY2hhciAqLAoJCXN0
cnVjdCBhZnNjb25mX2NlbGwgKik7CmV4dGVybiB2b2lkIGFmc2NvbmZfQ2xvc2UgKHN0cnVj
dCBhZnNjb25mX2RpciAqKTsKCmV4dGVybiBpbnQga3JiNTI0X2NvbnZlcnRfY3JlZHNfa2Rj
IChrcmI1X2NvbnRleHQsIGtyYjVfY3JlZHMgKiwgQ1JFREVOVElBTFMgKik7CgovKgogKiAj
ZGVmaW5lcwogKi8KCiNpZm5kZWYgQUZTX0VUQwojZGVmaW5lIEFGU19FVEMJCSIvdXNyL3Zp
Y2UvZXRjIgojZW5kaWYKCi8qCiAqIFByb3RvdHlwZXMgZm9yIGludGVybmFsIGZ1bmN0aW9u
cwogKi8KCmludCBha2xvZyAodm9pZCkKewoJa3JiNV9jb250ZXh0IGNvbnRleHQ7CglrcmI1
X2NjYWNoZSBjY2FjaGUgPSAwOwoJa3JiNV9lcnJvcl9jb2RlIGtyYjVfc3RhdHVzOwoJaW50
IHN0YXR1cywgaSwgcGlkc3RhdHVzOwoKCWtyYjVfY3JlZHMgdjVjcmVkczsKCWtyYjVfY3Jl
ZHMgKnRlbXBjcmVkczsKCWtyYjVfcHJpbmNpcGFsIGNsaWVudF9wcmluY2lwYWwgPSAwOwoJ
Q1JFREVOVElBTFMgYzsKCXN0cnVjdCBhZnNjb25mX2RpciAqY29uZmlnZGlyID0gMDsKCWNo
YXIgbXljZWxsW01BWENFTExDSEFSUysxXTsKCXN0cnVjdCBhZnNjb25mX2NlbGwgY2VsbGNv
bmZpZzsKCgljaGFyIGtlcmJyZWFsbVtSRUFMTV9TWisxXTsKCWNoYXIgKipocmVhbG1zID0g
MDsKCglsb25nIHZpY2VJZDsKCXN0cnVjdCBrdGNfcHJpbmNpcGFsIGFzZXJ2ZXIsIGFjbGll
bnQ7CglzdHJ1Y3Qga3RjX3Rva2VuIGF0b2tlbiwgYnRva2VuOwoKICAgICAgICBrcmI1X3N0
YXR1cyA9IGtyYjVfaW5pdF9jb250ZXh0ICgmY29udGV4dCk7CiAgICAgICAgaWYgKGtyYjVf
c3RhdHVzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4ga3JiNV9zdGF0dXM7CiAgICAgICAg
fQogICAgICAgIGtyYjVfc3RhdHVzID0ga3JiNV9jY19kZWZhdWx0IChjb250ZXh0LCAmY2Nh
Y2hlKTsKICAgICAgICBpZiAoa3JiNV9zdGF0dXMpIHsKICAgICAgICAgICAgICAgIHJldHVy
biBrcmI1X3N0YXR1czsKICAgICAgICB9CgoJa3JiNV9zdGF0dXMgPSBrcmI1X2NjX2dldF9w
cmluY2lwYWwgKGNvbnRleHQsIGNjYWNoZSwgJmNsaWVudF9wcmluY2lwYWwpOwoJaWYgKGty
YjVfc3RhdHVzKSB7CgkJcmV0dXJuIGtyYjVfc3RhdHVzOwoJfQoJa3JiNTI0X2luaXRfZXRz
IChjb250ZXh0KTsKCWluaXRpYWxpemVfa3RjX2Vycm9yX3RhYmxlICgpOwoKCXN0YXR1cyA9
IHNldHBhZygpOwojaWZkZWYgREVCVUcKCXByaW50ZiAoIlN0YXR1cyBmcm9tIHNldHBhZygp
OiAlZFxuIiwgc3RhdHVzKTsKI2VuZGlmCgoJaWYgKCEoY29uZmlnZGlyID0gYWZzY29uZl9P
cGVuIChBRlNfRVRDKSkpIHsKCQlwcmludGYgKCJDYW4ndCBvcGVuIGFmcyBUaGlzQ2VsbCBm
cm9tICVzXG4iLCBBRlNfRVRDKTsKCQlyZXR1cm4gMjsKCX0KCQoJaWYgKGFmc2NvbmZfR2V0
TG9jYWxDZWxsIChjb25maWdkaXIsIG15Y2VsbCwgTUFYQ0VMTENIQVJTKSkgewoJCXByaW50
ZiAoIkNhbid0IGRldGVybWluZSBsb2NhbCBjZWxsXG4iKTsKCQlyZXR1cm4gMjsKCX0KCglp
ZiAoYWZzY29uZl9HZXRDZWxsSW5mbyAoY29uZmlnZGlyLCBteWNlbGwsIE5VTEwsICZjZWxs
Y29uZmlnKSkgewoJCXByaW50ZiAoIkNhbid0IGdldCBpbmZvcm1hdGlvbiBhYm91dCBteSBj
ZWxsICglcylcbiIsIG15Y2VsbCk7CgkJcmV0dXJuIDI7Cgl9CgoJLyogWFhYOiB3ZSBkb24n
dCBkbyBhbnl0aGluZyBhYm91dCBsaW5rZWQgY2VsbHMuLi4gKi8KCglhZnNjb25mX0Nsb3Nl
IChjb25maWdkaXIpOwoKI2lmZGVmIERFQlVHCglwcmludGYgKCJDZWxsIGNvbmZpZ3VyYXRp
b246XG4iKTsKCXByaW50ZiAoIkNlbGwgbmFtZTogJXNcbiIsIGNlbGxjb25maWcubmFtZSk7
CglwcmludGYgKCJDZWxsIHNlcnZlcnM6XG4iKTsKCWZvciAoaSA9IDA7IGkgPCBjZWxsY29u
ZmlnLm51bVNlcnZlcnM7IGkrKykgewoJCXByaW50ZiAoIiAgICVzXG4iLCBjZWxsY29uZmln
Lmhvc3ROYW1lW2ldKTsKCX0KI2VuZGlmCgoJaWYgKGtyYjVfc3RhdHVzID0ga3JiNV9nZXRf
aG9zdF9yZWFsbSAoY29udGV4dCwgY2VsbGNvbmZpZy5ob3N0TmFtZVswXSwKCQkJJmhyZWFs
bXMpKQoJCXJldHVybiAyOwoJaWYgKCFocmVhbG1zWzBdKSByZXR1cm4gMDsKCXN0cm5jcHkg
KGtlcmJyZWFsbSwgaHJlYWxtc1swXSwgUkVBTE1fU1opOwoJa2VyYnJlYWxtW1JFQUxNX1Na
XSA9ICdcMCc7CglpZiAoaHJlYWxtcykKCQlrcmI1X2ZyZWVfaG9zdF9yZWFsbSAoY29udGV4
dCwgaHJlYWxtcyk7CgojaWZkZWYgREVCVUcKCXByaW50ZiAoIktlcmJlcm9zIHJlYWxtIGZv
ciB0aGlzIGNlbGwgaXM6ICVzXG4iLCBrZXJicmVhbG0pOwojZW5kaWYKCgltZW1zZXQgKChj
aGFyICopJnY1Y3JlZHMsIDAsIHNpemVvZiAodjVjcmVkcykpOwoJdGVtcGNyZWRzID0gMDsK
CWlmICgoa3JiNV9zdGF0dXMgPSBrcmI1X2J1aWxkX3ByaW5jaXBhbCAoY29udGV4dCwgJnY1
Y3JlZHMuc2VydmVyLAoJCQlzdHJsZW4gKGtlcmJyZWFsbSksIGtlcmJyZWFsbSwgImFmcyIs
IDAsIDApKSkgewoJCXJldHVybiAyOwoJfQoJdjVjcmVkcy5jbGllbnQgPSBjbGllbnRfcHJp
bmNpcGFsOwoJdjVjcmVkcy50aW1lcy5lbmR0aW1lID0gMDsKCXY1Y3JlZHMua2V5YmxvY2su
ZW5jdHlwZSA9IEVOQ1RZUEVfREVTX0NCQ19DUkM7CglrcmI1X3N0YXR1cyA9IGtyYjVfZ2V0
X2NyZWRlbnRpYWxzIChjb250ZXh0LCAwLCBjY2FjaGUsICZ2NWNyZWRzLCAmdGVtcGNyZWRz
KTsKCWlmIChrcmI1X3N0YXR1cykgewoJCXByaW50ZiAoImdldF9jcmVkZW50aWFscyBTdGF0
dXM6ICVsZFxuIiwga3JiNV9zdGF0dXMpOwoJCWNvbV9lcnIgKCJha2xvZyIsIGtyYjVfc3Rh
dHVzLCAiIik7CgkJcmV0dXJuIGtyYjVfc3RhdHVzOwoJfQoJa3JiNV9zdGF0dXMgPSBrcmI1
MjRfY29udmVydF9jcmVkc19rZGMgKGNvbnRleHQsIHRlbXBjcmVkcywgJmMpOwoJaWYgKGty
YjVfc3RhdHVzKSB7CgkJcHJpbnRmICgiNTI0X2NvbnZlcnQgU3RhdHVzOiAlbGRcbiIsIGty
YjVfc3RhdHVzKTsKCQljb21fZXJyICgiYWtsb2ciLCBrcmI1X3N0YXR1cywgIiIpOwoJCXJl
dHVybiBrcmI1X3N0YXR1czsKCX0KI2lmZGVmIERFQlVHCglwcmludGYgKCJTdWNjZXNzZnVs
bHkgb2J0YWluZWQgYWZzIHRpY2tldFxuIik7CiNlbmRpZgoKCWlmICghcHJfSW5pdGlhbGl6
ZSAoMCwgQUZTX0VUQywgbXljZWxsLCAwKSkgewoJCXN0YXR1cyA9IHByX1NOYW1lVG9JZCAo
Yy5wbmFtZSwgJnZpY2VJZCk7Cgl9CgoJaWYgKHN0YXR1cykgewoJCXByaW50ZiAoIkNvdWxk
bid0IGxvb2sgdXAgbmFtZSB0byBJRFxuIik7CgkJcmV0dXJuIDI7Cgl9CgoJc3RybmNweSAo
YXNlcnZlci5uYW1lLCAiYWZzIiwgTUFYS1RDTkFNRUxFTiAtIDEpOwoJc3RybmNweSAoYXNl
cnZlci5pbnN0YW5jZSwgIiIsIE1BWEtUQ05BTUVMRU4gLSAxKTsKCXN0cm5jcHkgKGFzZXJ2
ZXIuY2VsbCwgbXljZWxsLCBNQVhLVENOQU1FTEVOIC0gMSk7CglzbnByaW50ZiAoYWNsaWVu
dC5uYW1lLCBNQVhLVENOQU1FTEVOIC0gMSwgIkFGUyBJRCAlZCIsIHZpY2VJZCk7CglzdHJj
cHkgKGFjbGllbnQuaW5zdGFuY2UsICIiKTsKCXN0cm5jcHkgKGFjbGllbnQuY2VsbCwgYy5y
ZWFsbSwgTUFYS1RDUkVBTE1MRU4gLSAxKTsKCgltZW1zZXQgKChjaGFyICopICZhdG9rZW4s
IDAsIHNpemVvZiAoc3RydWN0IGt0Y190b2tlbikpOwoJYXRva2VuLmt2bm8gPSBjLmt2bm87
CglhdG9rZW4uc3RhcnRUaW1lID0gYy5pc3N1ZV9kYXRlOwoJYXRva2VuLmVuZFRpbWUgPSB0
ZW1wY3JlZHMtPnRpbWVzLmVuZHRpbWU7CgltZW1jcHkgKCZhdG9rZW4uc2Vzc2lvbktleSwg
Yy5zZXNzaW9uLCA4KTsKCWF0b2tlbi50aWNrZXRMZW4gPSBjLnRpY2tldF9zdC5sZW5ndGg7
CgltZW1jcHkgKGF0b2tlbi50aWNrZXQsIGMudGlja2V0X3N0LmRhdCwgYXRva2VuLnRpY2tl
dExlbik7CgoJaWYgKChzdGF0dXMgPSBrdGNfU2V0VG9rZW4gKCZhc2VydmVyLCAmYXRva2Vu
LCAmYWNsaWVudCwgMCkpKSB7CgkJc3dpdGNoIChzdGF0dXMpIHsKCQkJY2FzZSBLVENfSU5W
QUw6CgkJCQlwcmludGYgKCJJbnZhbGlkIHRpY2tldCBsZW5ndGhcbiIpOwoJCQkJcmV0dXJu
IDI7CgkJCWNhc2UgS1RDX1BJT0NUTEZBSUw6CgkJCQlwcmludGYgKCJVbmtub3duIGVycm9y
XG4iKTsKCQkJCXJldHVybiAyOwoJCQljYXNlIEtUQ19OT0NFTEw6CgkJCQlwcmludGYgKCJD
ZWxsIG5hbWUgbm90IHJlY29nbml6ZWRcbiIpOwoJCQkJcmV0dXJuIDI7CgkJCWNhc2UgS1RD
X05PQ006CgkJCQlwcmludGYgKCJhZnMgbm90IGF2YWlsYWJsZVxuIik7CgkJCQlyZXR1cm4g
MjsKCQkJZGVmYXVsdDoKCQkJCXByaW50ZiAoIndobyBrbm93cyB3aGF0IGhhcHBlbmVkXG4i
KTsKCQkJCXJldHVybiAyOwoJCX0KCX0KfQoKaW50IHVubG9nICh2b2lkKQp7CglrdGNfRm9y
Z2V0QWxsVG9rZW5zICgpOwoJcmV0dXJuIDA7Cn0KCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrNWFmcy9ha2xvZy5oAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAMTAwNjQ0IAAgIDE3NTMgACAgMTc1MyAAICAgICAgICAxNzQg
IDc0NjAzNDYxNTEgIDEyNjc0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAHVzdGFyICAAamdhcm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq
Z2FybWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8q
CiAqICRJZDogYWtsb2cuaCx2IDEuMS4xLjEgMjAwMi8wNC8yMCAyMDoxNTozNyBqZ2FybWFu
IEV4cCAkCiAqLwoKI2luY2x1ZGUgPGtyYjUuaD4KCmludCBha2xvZyAodm9pZCk7CmludCB1
bmxvZyAodm9pZCk7CgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAazVhZnMvbWFpbi5jAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADEwMDY0NCAAICAxNzUzIAAgIDE3NTMgACAgICAgICAxNTExICA3
NDY1MjI3MjI1ICAxMjUzNwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB1c3RhciAgAGpnYXJtYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamdh
cm1hbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKgog
KiAkSWQ6IG1haW4uYyx2IDEuMiAyMDAyLzA0LzI0IDE0OjA4OjA0IGpnYXJtYW4gRXhwICQK
ICoKICogYWtsb2cuYyA6IERlZmluZXMgdGhlIGFrbG9nIGxpYnJhcnkgZnVuY3Rpb24gY2Fs
bAogKi8KCiNpbmNsdWRlICJha2xvZy5oIgoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRl
IDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiNpbmNsdWRlIDxzdHJpbmcu
aD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8bWVtb3J5Lmg+CiNpbmNsdWRlIDxz
dGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2luY2x1ZGUgPGtlcmJlcm9zSVYva3Ji
Lmg+CiNpbmNsdWRlIDxrcmI1Lmg+CgojaW5jbHVkZSA8YWZzL3N0ZHMuaD4KI2luY2x1ZGUg
PGFmcy9hdXRoLmg+CiNpbmNsdWRlIDxyeC9yeGthZC5oPgojaW5jbHVkZSA8YWZzL3N0ZHMu
aD4KI2luY2x1ZGUgPGFmcy9jb21fZXJyLmg+CiNpbmNsdWRlIDxhZnMvcGFyYW0uaD4KI2lu
Y2x1ZGUgPGFmcy9jZWxsY29uZmlnLmg+CiNpbmNsdWRlIDxhZnMvdmljZS5oPgojaW5jbHVk
ZSA8YWZzL3ZlbnVzLmg+CiNpbmNsdWRlIDxhZnMvcHRzZXJ2ZXIuaD4KCiNpbmNsdWRlICJh
a2xvZy5oIgoKaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKewoJaW50IHN0YXR1
cywgcGlkc3RhdHVzOwoKCXN0YXR1cyA9IGZvcmsgKCk7CglpZiAoc3RhdHVzKSB7CQkJLyog
cGFyZW50ICovCgkJd2FpdHBpZCAoc3RhdHVzLCAmcGlkc3RhdHVzLCAwKTsKCQlyZXR1cm4g
MDsKCX0gZWxzZSB7CQkJLyogY2hpbGQgKi8KCQlha2xvZygpOwoJCWV4ZWNsICgiL2Jpbi9i
YXNoIiwgImJhc2giLCBOVUxMKTsKCX0KfQoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA=

--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diffs

First part of automatic afs token grabbing support.

Relies on external "libaklog" which I'll import later in a "k5afs" module.
Also requires Makefile changes; most notably the LIBS line:

LIBS=-lresolv -lz -lsocket -lnsl  -lcrypto  -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -laklog -lkrb524 -lsys -lprot -lubik -lauth -lrxkad -lrx -llwp -ldes -lsys /usr/local/lib/afs/util.a -lcom_err -laklog

should compile sshd correctly.

--- openssh/servconf.c	2002/03/08 15:33:46	1.2
+++ openssh/servconf.c	2002/04/20 20:09:34	1.3
@@ -100,6 +100,9 @@
 #ifdef AFS
 	options->afs_token_passing = -1;
 #endif
+#if 1		/* VIAKEN MODS */
+	options->run_aklog = -1;
+#endif
 	options->password_authentication = -1;
 	options->kbd_interactive_authentication = -1;
 	options->challenge_response_authentication = -1;
@@ -219,6 +222,10 @@
 	if (options->afs_token_passing == -1)
 		options->afs_token_passing = k_hasafs();
 #endif
+#if 1		/* VIAKEN MODS */
+ 	if (options->run_aklog == -1)
+		options->run_aklog = 0;
+#endif
 	if (options->password_authentication == -1)
 		options->password_authentication = 1;
 	if (options->kbd_interactive_authentication == -1)
@@ -277,6 +284,9 @@
 #ifdef AFS
 	sAFSTokenPassing,
 #endif
+#if 1		/* VIAKEN MODS */
+	sRunAklog,
+#endif
 	sChallengeResponseAuthentication,
 	sPasswordAuthentication, sKbdInteractiveAuthentication, sListenAddress,
 	sPrintMotd, sPrintLastLog, sIgnoreRhosts,
@@ -335,6 +345,9 @@
 #ifdef AFS
 	{ "afstokenpassing", sAFSTokenPassing },
 #endif
+#if 1		/* VIAKEN MODS */
+	{ "runaklog", sRunAklog },
+#endif
 	{ "passwordauthentication", sPasswordAuthentication },
 	{ "kbdinteractiveauthentication", sKbdInteractiveAuthentication },
 	{ "challengeresponseauthentication", sChallengeResponseAuthentication },
@@ -686,7 +699,11 @@
 			intptr = &options->afs_token_passing;
 			goto parse_flag;
 #endif
-
+#if 1			/* VIAKEN MODS */
+		case sRunAklog:
+			intptr = &options->run_aklog;
+			goto parse_flag;
+#endif
 		case sPasswordAuthentication:
 			intptr = &options->password_authentication;
 			goto parse_flag;

--- openssh/servconf.h	2002/03/08 15:33:46	1.2
+++ openssh/servconf.h	2002/04/20 20:09:34	1.3
@@ -97,6 +97,9 @@
 #ifdef AFS
 	int     afs_token_passing;	/* If true, permit AFS token passing. */
 #endif
+#if 1			/* VIAKEN MODS */
+	int	run_aklog;
+#endif
 	int     password_authentication;	/* If true, permit password
 						 * authentication. */
 	int     kbd_interactive_authentication;	/* If true, permit */

--- openssh/session.c	2002/03/08 15:37:51	1.3
+++ openssh/session.c	2002/04/20 20:09:35	1.4
@@ -96,6 +96,10 @@
 # include <uinfo.h>
 #endif
 
+#if 1		/* VIAKEN MODS */
+#include <aklog.h>
+#endif
+
 /* types */
 
 #define TTYSZ 64
@@ -1398,6 +1402,15 @@
 #endif /* AFS */
 
 	debug ("Changing to users' directory");
+
+#if 1		/* VIAKEN MODS */
+	if (options.run_aklog) {
+		debug ("Starting aklog");
+		aklog ();
+		debug ("Finished aklog");
+	}
+#endif
+
 	/* Change current directory to the user\'s home directory. */
 	if (chdir(pw->pw_dir) < 0) {
 		fprintf(stderr, "Could not chdir to home directory %s: %s\n",


--ikeVEW9yuYc//A+q--