[19813] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

kdc: cross realm s4u2self handling

daemon@ATHENA.MIT.EDU (Isaac Boukris)
Tue Sep 18 12:12:35 2018

MIME-Version: 1.0
From: Isaac Boukris <iboukris@gmail.com>
Date: Tue, 18 Sep 2018 21:42:18 +0530
Message-ID: <CAC-fF8TJHx9EtOECkMo9uenyFDXJCVgOw5w7+-KVu3H-TKK65g@mail.gmail.com>
To: krbdev@mit.edu
Content-Type: multipart/mixed; boundary="000000000000e9bfda0576278d94"
Errors-To: krbdev-bounces@mit.edu

--000000000000e9bfda0576278d94
Content-Type: text/plain; charset="UTF-8"

Hello Greg, all,

I've been working lately on cross-realm s4u2self in samba code and
would like to consult about MIT's current handling and possibly needed
changes.

See last emails on samba-technical thread (it's a long one, spans over
a few months):
https://lists.samba.org/archive/samba-technical/2018-September/130044.html

Heimdal and Samba PRs:
https://github.com/heimdal/heimdal/pull/403
https://github.com/samba-team/samba/pull/204


In short, for cross-realm s4u2self requests we need a way to sign and
verify the PAC including the realm, that is user@realm for a regular
principal name, and user@realm@realm for an enterprise one.

See attached prove-of-concept patches for mit-krb5 and samba with
which cross-realm s4u2self works both ways (tested manually against
windows too).

I'd like to start with the last commit in the MIT patch, which
partially reverts 8a9909ff9ef6b51c5ed09ead6713888fbb34072f commit,
that I don't fully understand.

In cross-realm s4u2self, a service starts by requesting the ticket
from a KDC in the impersonated principal's realm, and then follows
back referrals to its own realm.
The kdc code handles this correctly in several places apart of this
error when is_referral is true, introduced by the above commit.

I think it even contradicts the below sections in 'do_tgs_req.c':

    if (isflagset(c_flags, KRB5_KDB_FLAG_PROTOCOL_TRANSITION) &&
        !isflagset(c_flags, KRB5_KDB_FLAG_CROSS_REALM))
        enc_tkt_reply.client = s4u_x509_user->user_id.user;
    else
        enc_tkt_reply.client = subject_tkt->client;

This code is a bit tricky as usually KRB5_KDB_FLAG_CROSS_REALM means
that the client is not in local realm so he probably came with a
referral tgt, but not necessarily that we are currently issuing a
referral.
But in cross-realm s4u2self, since the tgt-client and the server are
the same principal, it means we are issuing a referral and that's
exactly what this code is checking in order to set the returned cname
and crealm.

However, with the above commit we won't reach here in case of referral
as we'd error out before.
BTW, I think using the new is_referral instead of
KRB5_KDB_FLAG_CROSS_REALM in this code would be clearer and more
correct (as it is based on db lookup).

Thought?

Thank you!

--000000000000e9bfda0576278d94
Content-Type: text/plain; charset="US-ASCII";
	name="mit_upstream_xrealm_s4u2self.patch.txt"
Content-Disposition: attachment; 
	filename="mit_upstream_xrealm_s4u2self.patch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jm7vt3g50

RnJvbSA4NjVjZGRlM2Q5M2M0OTJiMmNlOGY1YWQ2Zjg5OGMzOWIyYTA4NmQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJc2FhYyBCb3VrcmlzIDxpYm91a3Jpc0BnbWFpbC5jb20+CkRh
dGU6IFdlZCwgMTIgU2VwIDIwMTggMTY6MzI6NTcgKzAzMDAKU3ViamVjdDogW1BBVENIIDEvNF0g
a2RiOiBmaXggc2lnbl9hdXRoZGF0YSgpIEFQSSBjb21tZW50cwoKU2lnbmVkLW9mZi1ieTogSXNh
YWMgQm91a3JpcyA8aWJvdWtyaXNAZ21haWwuY29tPgotLS0KIHNyYy9pbmNsdWRlL2tkYi5oIHwg
NyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2tkYi5oIGIvc3JjL2luY2x1ZGUva2RiLmgKaW5k
ZXggNTYxNTMyOWMwLi43ZjExODI5ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2tkYi5oCisr
KyBiL3NyYy9pbmNsdWRlL2tkYi5oCkBAIC0xMjU3LDE0ICsxMjU3LDE1IEBAIHR5cGVkZWYgc3Ry
dWN0IF9rZGJfdmZ0YWJsIHsKICAgICAgKgogICAgICAqICAgZmxhZ3M6IFRoZSBmbGFncyB1c2Vk
IHRvIGxvb2sgdXAgdGhlIGNsaWVudCBwcmluY2lwYWwuCiAgICAgICoKLSAgICAgKiAgIGNsaWVu
dF9wcmluYzogRm9yIFM0VTJQcm94eSBUR1MgcmVxdWVzdHMsIHRoZSBjbGllbnQgcHJpbmNpcGFs
Ci0gICAgICogICAgIHJlcXVlc3RlZCBieSB0aGUgc2VydmljZTsgZm9yIHJlZ3VsYXIgVEdTIHJl
cXVlc3RzLCB0aGUKKyAgICAgKiAgIGNsaWVudF9wcmluYzogRm9yIFM0VTJTZWxmIGFuZCBTNFUy
UHJveHkgVEdTIHJlcXVlc3RzLCB0aGUgY2xpZW50CisgICAgICogICAgIHByaW5jaXBhbCByZXF1
ZXN0ZWQgYnkgdGhlIHNlcnZpY2U7IGZvciByZWd1bGFyIFRHUyByZXF1ZXN0cywgdGhlCiAgICAg
ICogICAgIHBvc3NpYmx5LWNhbm9uaWNhbGl6ZWQgY2xpZW50IHByaW5jaXBhbC4KICAgICAgKgog
ICAgICAqICAgY2xpZW50OiBUaGUgREIgZW50cnkgb2YgdGhlIGNsaWVudC4gIEZvciBTNFUyU2Vs
ZiwgdGhpcyB3aWxsIGJlIHRoZSBEQgogICAgICAqICAgICBlbnRyeSBmb3IgdGhlIGNsaWVudCBw
cmluY2lwYWwgcmVxdWVzdGVkIGJ5IHRoZSBzZXJ2aWNlKS4KICAgICAgKgotICAgICAqICAgc2Vy
dmVyOiBUaGUgREIgZW50cnkgb2YgdGhlIHNlcnZpY2UgcHJpbmNpcGFsLgorICAgICAqICAgc2Vy
dmVyOiBUaGUgREIgZW50cnkgb2YgdGhlIHNlcnZpY2UgcHJpbmNpcGFsLCBvciBvZiBhIGNyb3Nz
LXJlYWxtCisgICAgICogICAgIGtyYnRndCBwcmluY2lwYWwgaW4gY2FzZSBvZiByZWZlcnJhbC4K
ICAgICAgKgogICAgICAqICAga3JidGd0OiBGb3IgVEdTIHJlcXVlc3RzLCB0aGUgREIgZW50cnkg
b2YgdGhlIHNlcnZlciBvZiB0aGUgdGlja2V0IGluCiAgICAgICogICAgIHRoZSBQQS1UR1MtUkVR
IHBhZGF0YTsgdGhpcyBpcyB1c3VhbGx5IGEgbG9jYWwgb3IgY3Jvc3MtcmVhbG0ga3JidGd0Ci0t
IAoyLjE0LjMKCgpGcm9tIDE0NGFkZDI5YTRkYTQ2YTdiYjI3ODY4ODRjMTFiMWI1ZjE4NzQyM2Ug
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElzYWFjIEJvdWtyaXMgPGlib3VrcmlzQGdt
YWlsLmNvbT4KRGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAwMDoyNzozMyArMDMwMApTdWJqZWN0OiBb
UEFUQ0ggMi80XSB3aXA6IGxldCBzaWduIHBhYyB3aXRoIHJlYWxtIGZvciBjcm9zcyByZWFsbSBz
NHUyc2VsZgoKU2lnbmVkLW9mZi1ieTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNAZ21haWwuY29t
PgotLS0KIHNyYy9pbmNsdWRlL2tyYjUva3JiNS5oaW4gICAgfCAgNiArKysrKysKIHNyYy9saWIv
a3JiNS9rcmIvcGFjX3NpZ24uYyAgfCAxOSArKysrKysrKysrKysrKysrLS0tCiBzcmMvbGliL2ty
YjUvbGlia3JiNS5leHBvcnRzIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25z
KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2tyYjUva3JiNS5o
aW4gYi9zcmMvaW5jbHVkZS9rcmI1L2tyYjUuaGluCmluZGV4IDM4NGJiODM4Zi4uZTQwNmVkZTNl
IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9rcmI1L2tyYjUuaGluCisrKyBiL3NyYy9pbmNsdWRl
L2tyYjUva3JiNS5oaW4KQEAgLTgyOTksNiArODI5OSwxMiBAQCBrcmI1X3BhY19zaWduKGtyYjVf
Y29udGV4dCBjb250ZXh0LCBrcmI1X3BhYyBwYWMsIGtyYjVfdGltZXN0YW1wIGF1dGh0aW1lLAog
ICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lwYWwsIGNvbnN0IGtyYjVf
a2V5YmxvY2sgKnNlcnZlcl9rZXksCiAgICAgICAgICAgICAgIGNvbnN0IGtyYjVfa2V5YmxvY2sg
KnByaXZzdnJfa2V5LCBrcmI1X2RhdGEgKmRhdGEpOwogCitrcmI1X2Vycm9yX2NvZGUgS1JCNV9D
QUxMQ09OVgora3JiNV9wYWNfc2lnbl9leChrcmI1X2NvbnRleHQgY29udGV4dCwga3JiNV9wYWMg
cGFjLCBrcmI1X3RpbWVzdGFtcCBhdXRodGltZSwKKyAgICAgICAgICAgICAgICAga3JiNV9jb25z
dF9wcmluY2lwYWwgcHJpbmNpcGFsLAorICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2tleWJs
b2NrICpzZXJ2ZXJfa2V5LAorICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2tleWJsb2NrICpw
cml2c3ZyX2tleSwga3JiNV9kYXRhICpkYXRhLAorICAgICAgICAgICAgICAgICBrcmI1X2Jvb2xl
YW4gd2l0aF9yZWFsbSk7CiAvKioKICAqIEFsbG93IHRoZSBhcHBwbGljYXRpb24gdG8gb3ZlcnJp
ZGUgdGhlIHByb2ZpbGUncyBhbGxvd193ZWFrX2NyeXB0byBzZXR0aW5nLgogICoKZGlmZiAtLWdp
dCBhL3NyYy9saWIva3JiNS9rcmIvcGFjX3NpZ24uYyBiL3NyYy9saWIva3JiNS9rcmIvcGFjX3Np
Z24uYwppbmRleCBjOTQ4OTljOTYuLmVlOWZkYTE5MiAxMDA2NDQKLS0tIGEvc3JjL2xpYi9rcmI1
L2tyYi9wYWNfc2lnbi5jCisrKyBiL3NyYy9saWIva3JiNS9rcmIvcGFjX3NpZ24uYwpAQCAtMzMs
NyArMzMsOCBAQCBzdGF0aWMga3JiNV9lcnJvcl9jb2RlCiBrNV9pbnNlcnRfY2xpZW50X2luZm8o
a3JiNV9jb250ZXh0IGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAga3JiNV9wYWMgcGFj
LAogICAgICAgICAgICAgICAgICAgICAgIGtyYjVfdGltZXN0YW1wIGF1dGh0aW1lLAotICAgICAg
ICAgICAgICAgICAgICAgIGtyYjVfY29uc3RfcHJpbmNpcGFsIHByaW5jaXBhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lwYWwsCisgICAgICAgICAg
ICAgICAgICAgICAga3JiNV9ib29sZWFuIHdpdGhfcmVhbG0pCiB7CiAgICAga3JiNV9lcnJvcl9j
b2RlIHJldDsKICAgICBrcmI1X2RhdGEgY2xpZW50X2luZm87CkBAIC00OCw3ICs0OSw3IEBAIGs1
X2luc2VydF9jbGllbnRfaW5mbyhrcmI1X2NvbnRleHQgY29udGV4dCwKICAgICAgICAgcmV0dXJu
IGs1X3BhY192YWxpZGF0ZV9jbGllbnQoY29udGV4dCwgcGFjLCBhdXRodGltZSwgcHJpbmNpcGFs
KTsKICAgICB9CiAKLSAgICByZXQgPSBrcmI1X3VucGFyc2VfbmFtZV9mbGFncyhjb250ZXh0LCBw
cmluY2lwYWwsCisgICAgcmV0ID0ga3JiNV91bnBhcnNlX25hbWVfZmxhZ3MoY29udGV4dCwgcHJp
bmNpcGFsLCB3aXRoX3JlYWxtID8gMCA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgS1JCNV9QUklOQ0lQQUxfVU5QQVJTRV9OT19SRUFMTSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmcHJpbmNfbmFtZV91dGY4KTsKICAgICBpZiAocmV0ICE9IDApCkBAIC0x
ODIsNiArMTgzLDE3IEBAIGtyYjVfZXJyb3JfY29kZSBLUkI1X0NBTExDT05WCiBrcmI1X3BhY19z
aWduKGtyYjVfY29udGV4dCBjb250ZXh0LCBrcmI1X3BhYyBwYWMsIGtyYjVfdGltZXN0YW1wIGF1
dGh0aW1lLAogICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lwYWwsIGNv
bnN0IGtyYjVfa2V5YmxvY2sgKnNlcnZlcl9rZXksCiAgICAgICAgICAgICAgIGNvbnN0IGtyYjVf
a2V5YmxvY2sgKnByaXZzdnJfa2V5LCBrcmI1X2RhdGEgKmRhdGEpCit7CisgICAgcmV0dXJuIGty
YjVfcGFjX3NpZ25fZXgoY29udGV4dCwgcGFjLCBhdXRodGltZSwgcHJpbmNpcGFsLCBzZXJ2ZXJf
a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZzdnJfa2V5LCBkYXRhLCAwKTsK
K30KKwora3JiNV9lcnJvcl9jb2RlIEtSQjVfQ0FMTENPTlYKK2tyYjVfcGFjX3NpZ25fZXgoa3Ji
NV9jb250ZXh0IGNvbnRleHQsIGtyYjVfcGFjIHBhYywga3JiNV90aW1lc3RhbXAgYXV0aHRpbWUs
CisgICAgICAgICAgICAgICAgIGtyYjVfY29uc3RfcHJpbmNpcGFsIHByaW5jaXBhbCwKKyAgICAg
ICAgICAgICAgICAgY29uc3Qga3JiNV9rZXlibG9jayAqc2VydmVyX2tleSwKKyAgICAgICAgICAg
ICAgICAgY29uc3Qga3JiNV9rZXlibG9jayAqcHJpdnN2cl9rZXksIGtyYjVfZGF0YSAqZGF0YSwK
KyAgICAgICAgICAgICAgICAga3JiNV9ib29sZWFuIHdpdGhfcmVhbG0pCiB7CiAgICAga3JiNV9l
cnJvcl9jb2RlIHJldDsKICAgICBrcmI1X2RhdGEgc2VydmVyX2Nrc3VtLCBwcml2c3ZyX2Nrc3Vt
OwpAQCAtMTkyLDcgKzIwNCw4IEBAIGtyYjVfcGFjX3NpZ24oa3JiNV9jb250ZXh0IGNvbnRleHQs
IGtyYjVfcGFjIHBhYywga3JiNV90aW1lc3RhbXAgYXV0aHRpbWUsCiAgICAgZGF0YS0+ZGF0YSA9
IE5VTEw7CiAKICAgICBpZiAocHJpbmNpcGFsICE9IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gazVf
aW5zZXJ0X2NsaWVudF9pbmZvKGNvbnRleHQsIHBhYywgYXV0aHRpbWUsIHByaW5jaXBhbCk7Cisg
ICAgICAgIHJldCA9IGs1X2luc2VydF9jbGllbnRfaW5mbyhjb250ZXh0LCBwYWMsIGF1dGh0aW1l
LCBwcmluY2lwYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX3Jl
YWxtKTsKICAgICAgICAgaWYgKHJldCAhPSAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAg
ICB9CmRpZmYgLS1naXQgYS9zcmMvbGliL2tyYjUvbGlia3JiNS5leHBvcnRzIGIvc3JjL2xpYi9r
cmI1L2xpYmtyYjUuZXhwb3J0cwppbmRleCA2MjJiYzM2NzMuLmNiYzZiZDE1ZiAxMDA2NDQKLS0t
IGEvc3JjL2xpYi9rcmI1L2xpYmtyYjUuZXhwb3J0cworKysgYi9zcmMvbGliL2tyYjUvbGlia3Ji
NS5leHBvcnRzCkBAIC00ODYsNiArNDg2LDcgQEAga3JiNV9wYWNfZ2V0X3R5cGVzCiBrcmI1X3Bh
Y19pbml0CiBrcmI1X3BhY19wYXJzZQoga3JiNV9wYWNfc2lnbgora3JiNV9wYWNfc2lnbl9leAog
a3JiNV9wYWNfdmVyaWZ5CiBrcmI1X3BhcnNlX25hbWUKIGtyYjVfcGFyc2VfbmFtZV9mbGFncwot
LSAKMi4xNC4zCgoKRnJvbSA5YTRhNTQ2MjBkMzg4Nzg2NDMwOGIxZTJiMzA5YTY1ZjQzZWUwNmM0
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJc2FhYyBCb3VrcmlzIDxpYm91a3Jpc0Bn
bWFpbC5jb20+CkRhdGU6IE1vbiwgMjAgQXVnIDIwMTggMTY6MTg6NTAgKzAzMDAKU3ViamVjdDog
W1BBVENIIDMvNF0gd2lwOiBsZXQgdmVyaWZ5IHBhYyB3aXRoIHJlYWxtIGZvciBjcm9zcyByZWFs
bSBzNHUyc2VsZgoKU2lnbmVkLW9mZi1ieTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNAZ21haWwu
Y29tPgotLS0KIHNyYy9pbmNsdWRlL2tyYjUva3JiNS5oaW4gICAgfCAgNiArKysrKysKIHNyYy9s
aWIva3JiNS9rcmIvYXV0aGRhdGEuaCAgfCAgNyArKysrKysrCiBzcmMvbGliL2tyYjUva3JiL3Bh
Yy5jICAgICAgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvbGli
L2tyYjUvbGlia3JiNS5leHBvcnRzIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2tyYjUva3Ji
NS5oaW4gYi9zcmMvaW5jbHVkZS9rcmI1L2tyYjUuaGluCmluZGV4IGU0MDZlZGUzZS4uM2JlYjVl
OGYxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9rcmI1L2tyYjUuaGluCisrKyBiL3NyYy9pbmNs
dWRlL2tyYjUva3JiNS5oaW4KQEAgLTgyNzYsNiArODI3NiwxMiBAQCBrcmI1X3BhY192ZXJpZnko
a3JiNV9jb250ZXh0IGNvbnRleHQsIGNvbnN0IGtyYjVfcGFjIHBhYywKICAgICAgICAgICAgICAg
ICBrcmI1X3RpbWVzdGFtcCBhdXRodGltZSwga3JiNV9jb25zdF9wcmluY2lwYWwgcHJpbmNpcGFs
LAogICAgICAgICAgICAgICAgIGNvbnN0IGtyYjVfa2V5YmxvY2sgKnNlcnZlciwgY29uc3Qga3Ji
NV9rZXlibG9jayAqcHJpdnN2cik7CiAKK2tyYjVfZXJyb3JfY29kZSBLUkI1X0NBTExDT05WCitr
cmI1X3BhY192ZXJpZnlfZXgoa3JiNV9jb250ZXh0IGNvbnRleHQsIGNvbnN0IGtyYjVfcGFjIHBh
YywKKyAgICAgICAgICAgICAgICAgICBrcmI1X3RpbWVzdGFtcCBhdXRodGltZSwga3JiNV9jb25z
dF9wcmluY2lwYWwgcHJpbmNpcGFsLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGtyYjVfa2V5
YmxvY2sgKnNlcnZlciwgY29uc3Qga3JiNV9rZXlibG9jayAqcHJpdnN2ciwKKyAgICAgICAgICAg
ICAgICAgICBrcmI1X2Jvb2xlYW4gd2l0aF9yZWFsbSk7CisKIC8qKgogICogU2lnbiBhIFBBQy4K
ICAqCmRpZmYgLS1naXQgYS9zcmMvbGliL2tyYjUva3JiL2F1dGhkYXRhLmggYi9zcmMvbGliL2ty
YjUva3JiL2F1dGhkYXRhLmgKaW5kZXggMWU1YzA4NDI2Li5hZWM2ZmY1NDIgMTAwNjQ0Ci0tLSBh
L3NyYy9saWIva3JiNS9rcmIvYXV0aGRhdGEuaAorKysgYi9zcmMvbGliL2tyYjUva3JiL2F1dGhk
YXRhLmgKQEAgLTkyLDYgKzkyLDEzIEBAIGs1X3BhY192YWxpZGF0ZV9jbGllbnQoa3JiNV9jb250
ZXh0IGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfdGltZXN0YW1wIGF1dGh0
aW1lLAogICAgICAgICAgICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lw
YWwpOwogCitrcmI1X2Vycm9yX2NvZGUKK2s1X3BhY192YWxpZGF0ZV9jbGllbnRfZXgoa3JiNV9j
b250ZXh0IGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtyYjVfcGFj
IHBhYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga3JiNV90aW1lc3RhbXAgYXV0aHRpbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfY29uc3RfcHJpbmNpcGFsIHByaW5jaXBh
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga3JiNV9ib29sZWFuIHdpdGhfcmVhbG0pOwor
CiBrcmI1X2Vycm9yX2NvZGUKIGs1X3BhY19hZGRfYnVmZmVyKGtyYjVfY29udGV4dCBjb250ZXh0
LAogICAgICAgICAgICAgICAgICAga3JiNV9wYWMgcGFjLApkaWZmIC0tZ2l0IGEvc3JjL2xpYi9r
cmI1L2tyYi9wYWMuYyBiL3NyYy9saWIva3JiNS9rcmIvcGFjLmMKaW5kZXggYzliNWRlMzBhLi4x
N2E3MmI1NmUgMTAwNjQ0Ci0tLSBhL3NyYy9saWIva3JiNS9rcmIvcGFjLmMKKysrIGIvc3JjL2xp
Yi9rcmI1L2tyYi9wYWMuYwpAQCAtNDA0LDYgKzQwNCwxNyBAQCBrNV9wYWNfdmFsaWRhdGVfY2xp
ZW50KGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBr
cmI1X3BhYyBwYWMsCiAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfdGltZXN0YW1wIGF1dGh0
aW1lLAogICAgICAgICAgICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lw
YWwpCit7CisJcmV0dXJuIGs1X3BhY192YWxpZGF0ZV9jbGllbnRfZXgoY29udGV4dCwgcGFjLCBh
dXRodGltZSwKKwkJCSAgICAgICAgICAgICAgICAgcHJpbmNpcGFsLCAwKTsKK30KKwora3JiNV9l
cnJvcl9jb2RlCitrNV9wYWNfdmFsaWRhdGVfY2xpZW50X2V4KGtyYjVfY29udGV4dCBjb250ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X3BhYyBwYWMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtyYjVfdGltZXN0YW1wIGF1dGh0aW1lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBwcmluY2lwYWwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtyYjVfYm9vbGVhbiB3aXRoX3JlYWxtKQogewogICAgIGtyYjVfZXJy
b3JfY29kZSByZXQ7CiAgICAga3JiNV9kYXRhIGNsaWVudF9pbmZvOwpAQCAtNDEzLDcgKzQyNCw3
IEBAIGs1X3BhY192YWxpZGF0ZV9jbGllbnQoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAgICAga3Ji
NV91aV8yIHBhY19wcmluY25hbWVfbGVuZ3RoOwogICAgIGludDY0X3QgcGFjX250X2F1dGh0aW1l
OwogICAgIGtyYjVfcHJpbmNpcGFsIHBhY19wcmluY2lwYWw7Ci0gICAgaW50IGZsYWdzOworICAg
IGludCBmbGFncyA9IDA7CiAKICAgICByZXQgPSBrNV9wYWNfbG9jYXRlX2J1ZmZlcihjb250ZXh0
LCBwYWMsIEtSQjVfUEFDX0NMSUVOVF9JTkZPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZjbGllbnRfaW5mbyk7CkBAIC00NDMsNyArNDU0LDggQEAgazVfcGFjX3ZhbGlkYXRlX2Ns
aWVudChrcmI1X2NvbnRleHQgY29udGV4dCwKIAogICAgIC8qIFBhcnNlIHRoZSBVVEYtOCBuYW1l
IGFzIGFuIGVudGVycHJpc2UgcHJpbmNpcGFsIGlmIHdlIGFyZSBtYXRjaGluZwogICAgICAqIGFn
YWluc3Qgb25lOyBvdGhlcndpc2UgcGFyc2UgaXQgYXMgYSByZWd1bGFyIHByaW5jaXBhbCB3aXRo
IG5vIHJlYWxtLiAqLwotICAgIGZsYWdzID0gS1JCNV9QUklOQ0lQQUxfUEFSU0VfTk9fUkVBTE07
CisgICAgaWYgKCF3aXRoX3JlYWxtKQorICAgICAgICBmbGFncyB8PSBLUkI1X1BSSU5DSVBBTF9Q
QVJTRV9OT19SRUFMTTsKICAgICBpZiAocHJpbmNpcGFsLT50eXBlID09IEtSQjVfTlRfRU5URVJQ
UklTRV9QUklOQ0lQQUwpCiAgICAgICAgIGZsYWdzIHw9IEtSQjVfUFJJTkNJUEFMX1BBUlNFX0VO
VEVSUFJJU0U7CiAgICAgcmV0ID0ga3JiNV9wYXJzZV9uYW1lX2ZsYWdzKGNvbnRleHQsIHBhY19w
cmluY25hbWUsIGZsYWdzLCAmcGFjX3ByaW5jaXBhbCk7CkBAIC00NTgsNiArNDcwLDcgQEAgazVf
cGFjX3ZhbGlkYXRlX2NsaWVudChrcmI1X2NvbnRleHQgY29udGV4dCwKICAgICAgICAgIWtyYjVf
cHJpbmNpcGFsX2NvbXBhcmVfZmxhZ3MoY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFjX3ByaW5jaXBhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbmNpcGFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aXRoX3JlYWxtID8gMCA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEtSQjVfUFJJTkNJUEFMX0NPTVBBUkVfSUdOT1JFX1JFQUxNKSkKICAgICAgICAgcmV0ID0g
S1JCNUtSQl9BUF9XUk9OR19QUklOQzsKIApAQCAtNjIyLDYgKzYzNSwxOSBAQCBrcmI1X3BhY192
ZXJpZnkoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAgICAgICAgICAgICAgICAga3JiNV9jb25zdF9w
cmluY2lwYWwgcHJpbmNpcGFsLAogICAgICAgICAgICAgICAgIGNvbnN0IGtyYjVfa2V5YmxvY2sg
KnNlcnZlciwKICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2tleWJsb2NrICpwcml2c3ZyKQor
eworCXJldHVybiBrcmI1X3BhY192ZXJpZnlfZXgoY29udGV4dCwgcGFjLCBhdXRodGltZSwgcHJp
bmNpcGFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlciwgcHJpdnN2
ciwgMCk7Cit9CisKK2tyYjVfZXJyb3JfY29kZSBLUkI1X0NBTExDT05WCitrcmI1X3BhY192ZXJp
ZnlfZXgoa3JiNV9jb250ZXh0IGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgY29uc3Qga3Ji
NV9wYWMgcGFjLAorICAgICAgICAgICAgICAgICAgIGtyYjVfdGltZXN0YW1wIGF1dGh0aW1lLAor
ICAgICAgICAgICAgICAgICAgIGtyYjVfY29uc3RfcHJpbmNpcGFsIHByaW5jaXBhbCwKKyAgICAg
ICAgICAgICAgICAgICBjb25zdCBrcmI1X2tleWJsb2NrICpzZXJ2ZXIsCisgICAgICAgICAgICAg
ICAgICAgY29uc3Qga3JiNV9rZXlibG9jayAqcHJpdnN2ciwKKyAgICAgICAgICAgICAgICAgICBr
cmI1X2Jvb2xlYW4gd2l0aF9yZWFsbSkKIHsKICAgICBrcmI1X2Vycm9yX2NvZGUgcmV0OwogCkBA
IC02MzgsNyArNjY0LDggQEAga3JiNV9wYWNfdmVyaWZ5KGtyYjVfY29udGV4dCBjb250ZXh0LAog
ICAgIH0KIAogICAgIGlmIChwcmluY2lwYWwgIT0gTlVMTCkgewotICAgICAgICByZXQgPSBrNV9w
YWNfdmFsaWRhdGVfY2xpZW50KGNvbnRleHQsIHBhYywgYXV0aHRpbWUsIHByaW5jaXBhbCk7Cisg
ICAgICAgIHJldCA9IGs1X3BhY192YWxpZGF0ZV9jbGllbnRfZXgoY29udGV4dCwgcGFjLCBhdXRo
dGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmluY2lwYWws
IHdpdGhfcmVhbG0pOwogICAgICAgICBpZiAocmV0ICE9IDApCiAgICAgICAgICAgICByZXR1cm4g
cmV0OwogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMgYi9z
cmMvbGliL2tyYjUvbGlia3JiNS5leHBvcnRzCmluZGV4IGNiYzZiZDE1Zi4uMDBhYWFjYzFjIDEw
MDY0NAotLS0gYS9zcmMvbGliL2tyYjUvbGlia3JiNS5leHBvcnRzCisrKyBiL3NyYy9saWIva3Ji
NS9saWJrcmI1LmV4cG9ydHMKQEAgLTQ4OCw2ICs0ODgsNyBAQCBrcmI1X3BhY19wYXJzZQoga3Ji
NV9wYWNfc2lnbgoga3JiNV9wYWNfc2lnbl9leAoga3JiNV9wYWNfdmVyaWZ5CitrcmI1X3BhY192
ZXJpZnlfZXgKIGtyYjVfcGFyc2VfbmFtZQoga3JiNV9wYXJzZV9uYW1lX2ZsYWdzCiBrcmI1X3By
ZXBlbmRfZXJyb3JfbWVzc2FnZQotLSAKMi4xNC4zCgoKRnJvbSBlNTUzM2JhYTBiYTdkZmY3NWRl
ZmNiOGYwMzY4ZTJmZGMyZDM2Zjk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJc2Fh
YyBCb3VrcmlzIDxpYm91a3Jpc0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTggU2VwIDIwMTggMTU6
MTY6MjAgKzAzMDAKU3ViamVjdDogW1BBVENIIDQvNF0gd2lwOiBhbGxvdyBzNHUyc2VsZiBjcm9z
cyByZWFsbSByZWZlcnJhbHMKCm5lZWQgdG8gdW5kZXJzdGFuZCBjb21taXQgOGE5OTA5ZmY5ZWY2
YjUxYzVlZDA5ZWFkNjcxMzg4OGZiYjM0MDcyZgoKU2lnbmVkLW9mZi1ieTogSXNhYWMgQm91a3Jp
cyA8aWJvdWtyaXNAZ21haWwuY29tPgotLS0KIHNyYy9rZGMvZG9fdGdzX3JlcS5jIHwgMiArLQog
MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0
IGEvc3JjL2tkYy9kb190Z3NfcmVxLmMgYi9zcmMva2RjL2RvX3Rnc19yZXEuYwppbmRleCBiZjIx
NzgxMjUuLjVmNWM2ODMwYiAxMDA2NDQKLS0tIGEvc3JjL2tkYy9kb190Z3NfcmVxLmMKKysrIGIv
c3JjL2tkYy9kb190Z3NfcmVxLmMKQEAgLTI5MCw3ICsyOTAsNyBAQCBwcm9jZXNzX3Rnc19yZXEo
a3JiNV9rZGNfcmVxICpyZXF1ZXN0LCBrcmI1X2RhdGEgKnBrdCwKICAgICAgICAgZ290byBjbGVh
bnVwOwogICAgIGlmIChzNHVfeDUwOV91c2VyICE9IE5VTEwpIHsKICAgICAgICAgc2V0ZmxhZyhj
X2ZsYWdzLCBLUkI1X0tEQl9GTEFHX1BST1RPQ09MX1RSQU5TSVRJT04pOwotICAgICAgICBpZiAo
aXNfcmVmZXJyYWwpIHsKKyAgICAgICAgaWYgKDAgJiYgaXNfcmVmZXJyYWwpIHsKICAgICAgICAg
ICAgIC8qIFRoZSByZXF1ZXN0aW5nIHNlcnZlciBhcHBlYXJzIHRvIG5vIGxvbmdlciBleGlzdCwg
YW5kIHdlIGZvdW5kCiAgICAgICAgICAgICAgKiBhIHJlZmVycmFsIGluc3RlYWQuICBUcmVhdCB0
aGlzIGFzIGEgc2VydmVyIGxvb2t1cCBmYWlsdXJlLiAqLwogICAgICAgICAgICAgZXJyY29kZSA9
IEtSQjVLRENfRVJSX1NfUFJJTkNJUEFMX1VOS05PV047Ci0tIAoyLjE0LjMKCg==
--000000000000e9bfda0576278d94
Content-Type: text/plain; charset="US-ASCII";
	name="xrealm_s4u2self_mit_new.patch.txt"
Content-Disposition: attachment; filename="xrealm_s4u2self_mit_new.patch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jm7vtf0x1

RnJvbSA3MDU3OTA4NDM5MjEzODQ4NjkwNzY0MmFlODBlZWU1NzViNGZjNzI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJc2FhYyBCb3VrcmlzIDxpYm91a3Jpc0BnbWFpbC5jb20+CkRh
dGU6IFR1ZSwgMTggU2VwIDIwMTggMTY6NTU6MjYgKzAzMDAKU3ViamVjdDogW1BBVENIIDEvNl0g
bWl0LWtkYzogZml4IGNyb3NzIHJlYWxtIHM0dTJzZWxmIGhhbmRsaW5nCgpBY2NvcmRpbmcgdG8g
TVMtU0ZVIDMuMi41LngsIGluIGEgczR1MnNlbGYgcmVmZXJyYWwgdGlja2V0LAp0aGUgUEFDX0NM
SUVOVF9JTkZPIGZpZWxkIG1heSBpbmNsdWRlIHRoZSByZWFsbSwgc28gd2UgbmVlZAp0byBhY2Nv
dW50IGZvciB0aGlzIGJlZm9yZSB2ZXJpZnlpbmcgYW5kIHNpZ25pbmcgdGhlIFBBQy4KCk5vdGU6
IHRoaXMgY2hhbmdlIHJlcXVpcmVzIHVwc3RyZWFtIGNoYW5nZXMuCgpTaWduZWQtb2ZmLWJ5OiBJ
c2FhYyBCb3VrcmlzIDxpYm91a3Jpc0BnbWFpbC5jb20+Ci0tLQogc291cmNlNC9rZGMvbWl0LWtk
Yi9rZGJfc2FtYmFfcG9saWNpZXMuYyB8IDczICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tCiAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvc291cmNlNC9rZGMvbWl0LWtkYi9rZGJfc2FtYmFfcG9saWNpZXMuYyBiL3Nv
dXJjZTQva2RjL21pdC1rZGIva2RiX3NhbWJhX3BvbGljaWVzLmMKaW5kZXggODFhYzczNTgyZTAu
LjBhZDY2N2IwZmVlIDEwMDY0NAotLS0gYS9zb3VyY2U0L2tkYy9taXQta2RiL2tkYl9zYW1iYV9w
b2xpY2llcy5jCisrKyBiL3NvdXJjZTQva2RjL21pdC1rZGIva2RiX3NhbWJhX3BvbGljaWVzLmMK
QEAgLTE5Miw3ICsxOTIsOCBAQCBzdGF0aWMga3JiNV9lcnJvcl9jb2RlIGtzX3ZlcmlmeV9wYWMo
a3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICBrcmI1X2tleWJsb2NrICprcmJ0Z3Rfa2V5
LAogCQkJCSAgICAga3JiNV90aW1lc3RhbXAgYXV0aHRpbWUsCiAJCQkJICAgICBrcmI1X2F1dGhk
YXRhICoqdGd0X2F1dGhfZGF0YSwKLQkJCQkgICAgIGtyYjVfcGFjICpwYWMpCisJCQkJICAgICBr
cmI1X3BhYyAqcGFjLAorCQkJCSAgICAga3JiNV9ib29sZWFuIHdpdGhfcmVhbG0pCiB7CiAJc3Ry
dWN0IG1pdF9zYW1iYV9jb250ZXh0ICptaXRfY3R4OwogCWtyYjVfYXV0aGRhdGEgKiphdXRoZGF0
YSA9IE5VTEw7CkBAIC0yNDksMTIgKzI1MCwxMyBAQCBzdGF0aWMga3JiNV9lcnJvcl9jb2RlIGtz
X3ZlcmlmeV9wYWMoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICAgIHNlcnZlcl9rZXks
CiAJCQkJICAgICAgIGtyYnRndF9rZXkpOwogCX0gZWxzZSB7Ci0JCWNvZGUgPSBrcmI1X3BhY192
ZXJpZnkoY29udGV4dCwKLQkJCQkgICAgICAgaXBhYywKLQkJCQkgICAgICAgYXV0aHRpbWUsCi0J
CQkJICAgICAgIGNsaWVudF9wcmluYywKLQkJCQkgICAgICAga3JidGd0X2tleSwKLQkJCQkgICAg
ICAgTlVMTCk7CisJCWNvZGUgPSBrcmI1X3BhY192ZXJpZnlfZXgoY29udGV4dCwKKwkJCQkgICAg
ICAgICAgaXBhYywKKwkJCQkgICAgICAgICAgYXV0aHRpbWUsCisJCQkJICAgICAgICAgIGNsaWVu
dF9wcmluYywKKwkJCQkgICAgICAgICAga3JidGd0X2tleSwKKwkJCQkgICAgICAgICAgTlVMTCwK
KwkJCQkJICB3aXRoX3JlYWxtKTsKIAl9CiAJaWYgKGNvZGUgIT0gMCkgewogCQlnb3RvIGRvbmU7
CkBAIC0zMDMsMjggKzMwNSw1MiBAQCBrcmI1X2Vycm9yX2NvZGUga2RiX3NhbWJhX2RiX3NpZ25f
YXV0aF9kYXRhKGtyYjVfY29udGV4dCBjb250ZXh0LAogewogCWtyYjVfY29uc3RfcHJpbmNpcGFs
IGtzX2NsaWVudF9wcmluYzsKIAlrcmI1X2F1dGhkYXRhICoqYXV0aGRhdGEgPSBOVUxMOworCWty
YjVfYm9vbGVhbiB2ZXJpZnlfcmVhbG0gPSBmYWxzZTsKKwlrcmI1X2Jvb2xlYW4gc2lnbl9yZWFs
bSA9IGZhbHNlOworCWtyYjVfYm9vbGVhbiByZWdldF9wYWM7CiAJa3JiNV9ib29sZWFuIGlzX2Fz
X3JlcTsKIAlrcmI1X2Vycm9yX2NvZGUgY29kZTsKIAlrcmI1X3BhYyBwYWMgPSBOVUxMOwogCWty
YjVfZGF0YSBwYWNfZGF0YTsKIAogCS8qIFByZWZlciBjYW5vbmljYWxpc2VkIG5hbWUgZnJvbSBj
bGllbnQgZW50cnkgKi8KLQlpZiAoY2xpZW50ICE9IE5VTEwpIHsKLQkJa3NfY2xpZW50X3ByaW5j
ID0gY2xpZW50LT5wcmluYzsKLQl9IGVsc2UgewotCQlrc19jbGllbnRfcHJpbmMgPSBjbGllbnRf
cHJpbmM7Ci0JfQorCWtzX2NsaWVudF9wcmluYyA9IGNsaWVudCA/IGNsaWVudC0+cHJpbmMgOiBj
bGllbnRfcHJpbmM7CiAKIAlpc19hc19yZXEgPSAoKGZsYWdzICYgS1JCNV9LREJfRkxBR19DTElF
TlRfUkVGRVJSQUxTX09OTFkpICE9IDApOwogCi0JaWYgKGlzX2FzX3JlcSAmJiAoZmxhZ3MgJiBL
UkI1X0tEQl9GTEFHX0lOQ0xVREVfUEFDKSkgewotCQljb2RlID0ga3NfZ2V0X3BhYyhjb250ZXh0
LCBjbGllbnQsIGNsaWVudF9rZXksICZwYWMpOwotCQlpZiAoY29kZSAhPSAwKSB7Ci0JCQlnb3Rv
IGRvbmU7CisJcmVnZXRfcGFjID0gIWlzX2FzX3JlcTsKKworCWlmIChmbGFncyAmIEtSQjVfS0RC
X0ZMQUdfUFJPVE9DT0xfVFJBTlNJVElPTikgeworCisJCS8qIE1hdGNoIGZvcl91c2VyIHByaW5j
aXBhbCAqLworCQlrc19jbGllbnRfcHJpbmMgPSBjbGllbnRfcHJpbmM7CisKKwkJaWYgKGNsaWVu
dCAhPSBOVUxMKSB7CisJCQkvKiBUaGUgUEFDIGluIHRoZSB0Z3QgaXMgb2YgdGhlIGltcGVyc29u
YXRpbmcKKwkJCSAqIHNlcnZpY2UgcHJpbmNpcGFsLCBzbyB3ZSBkaXNjYXJkIGl0LgorCQkJICog
SWYgd2UgbXVzdCB2ZXJpZnkgaXQsIHRoZW4gd2UnbGwgbmVlZCB0byBjaGFuZ2UKKwkJCSAqIHRo
ZSBBUEkgdG8gcHJvdmlkZSB1cyB3aXRoIHRoZSB0Z3QtY2xpZW50IHByaW5jaXBhbAorCQkJICog
KHNlcnZlci0+cHJpbmMgY291bGQgd29yayBidXQgb25seSBpZiB0aGUgc2VydmljZQorCQkJICog
aXMgaW4gbG9jYWwgcmVhbG0sIG90aGVyd2lzZSBpdCBpcyB0aGUgY3Jvc3MtcmVhbG0KKwkJCSAq
IHRydXN0IHByaW5jaXBhbCkgKi8KKwkJCXJlZ2V0X3BhYyA9IGZhbHNlOworCQl9CisJCWVsc2Ug
eworCQkJLyogQ3Jvc3MgcmVhbG0gczR1MnNlbGYgdGlja2V0cyBpbmNsdWRlIHRoZSByZWFsbSAq
LworCQkJdmVyaWZ5X3JlYWxtID0gdHJ1ZTsKIAkJfQorCisJCS8qIElmIHRoZSB0Z3QtY2xpZW50
IGlzIG5vdCBmcm9tIGxvY2FsIHJlYWxtLCB0aGVuIG5laXRoZXIKKwkJICogaXMgdGhlIHNlcnZp
Y2UsIHNvIHdlIGFyZSBpc3N1aW5nIGEgcmVmZXJyYWwuICovCisJCWlmIChmbGFncyAmIEtSQjVf
S0RCX0ZMQUdfQ1JPU1NfUkVBTE0pIHsKKworCQkJLyogQ3Jvc3MgcmVhbG0gczR1MnNlbGYgdGlj
a2V0cyBpbmNsdWRlIHRoZSByZWFsbSAqLworCQkJc2lnbl9yZWFsbSA9IHRydWU7CisJCX0KKwog
CX0KIAotCWlmICghaXNfYXNfcmVxKSB7CisJaWYgKHJlZ2V0X3BhYykgewogCQljb2RlID0ga3Nf
dmVyaWZ5X3BhYyhjb250ZXh0LAogCQkJCSAgICAgZmxhZ3MsCiAJCQkJICAgICBrc19jbGllbnRf
cHJpbmMsCkBAIC0zMzUsMTQgKzM2MSwxNyBAQCBrcmI1X2Vycm9yX2NvZGUga2RiX3NhbWJhX2Ri
X3NpZ25fYXV0aF9kYXRhKGtyYjVfY29udGV4dCBjb250ZXh0LAogCQkJCSAgICAga3JidGd0X2tl
eSwKIAkJCQkgICAgIGF1dGh0aW1lLAogCQkJCSAgICAgdGd0X2F1dGhfZGF0YSwKLQkJCQkgICAg
ICZwYWMpOworCQkJCSAgICAgJnBhYywKKwkJCQkgICAgIHZlcmlmeV9yZWFsbSk7CiAJCWlmIChj
b2RlICE9IDApIHsKIAkJCWdvdG8gZG9uZTsKIAkJfQogCX0KIAotCWlmIChwYWMgPT0gTlVMTCAm
JiBjbGllbnQgIT0gTlVMTCkgewotCisJaWYgKGNsaWVudCAhPSBOVUxMICYmCisJCSgoaXNfYXNf
cmVxICYmIChmbGFncyAmIEtSQjVfS0RCX0ZMQUdfSU5DTFVERV9QQUMpKSB8fAorCQkJKCFpc19h
c19yZXEgJiYgcGFjID09IE5VTEwpKSkKKwl7CiAJCWNvZGUgPSBrc19nZXRfcGFjKGNvbnRleHQs
IGNsaWVudCwgY2xpZW50X2tleSwgJnBhYyk7CiAJCWlmIChjb2RlICE9IDApIHsKIAkJCWdvdG8g
ZG9uZTsKQEAgLTM1NCw4ICszODMsOCBAQCBrcmI1X2Vycm9yX2NvZGUga2RiX3NhbWJhX2RiX3Np
Z25fYXV0aF9kYXRhKGtyYjVfY29udGV4dCBjb250ZXh0LAogCQlnb3RvIGRvbmU7CiAJfQogCi0J
Y29kZSA9IGtyYjVfcGFjX3NpZ24oY29udGV4dCwgcGFjLCBhdXRodGltZSwga3NfY2xpZW50X3By
aW5jLAotCQkJc2VydmVyX2tleSwga3JidGd0X2tleSwgJnBhY19kYXRhKTsKKwljb2RlID0ga3Ji
NV9wYWNfc2lnbl9leChjb250ZXh0LCBwYWMsIGF1dGh0aW1lLCBrc19jbGllbnRfcHJpbmMsCisJ
CQkJc2VydmVyX2tleSwga3JidGd0X2tleSwgJnBhY19kYXRhLCBzaWduX3JlYWxtKTsKIAlpZiAo
Y29kZSAhPSAwKSB7CiAJCURCR19FUlIoImtyYjVfcGFjX3NpZ24gZmFpbGVkOiAlZFxuIiwgY29k
ZSk7CiAJCWdvdG8gZG9uZTsKLS0gCjIuMTQuMwoKCkZyb20gZmIyZjcyOTIwM2IzZGFhYzhjMzdm
MzAwMzA0NTIyNDhhNDkwZGNmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNhYWMg
Qm91a3JpcyA8aWJvdWtyaXNAZ21haWwuY29tPgpEYXRlOiBNb24sIDIyIEphbiAyMDE4IDE4OjQw
OjE3ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIG5ldC1hZHMtc2VhcmNoOiB1c2Ugc3BlY2lm
aWVkIHVzZXIgd2hlbiBnaXZlbgoKVGhpcyBmaXhlcyAnbmV0IGFkcyBzZWFyY2ggLVUnIG9uIGEg
ZG9tYWluIGNvbnRyb2xsZXIuCgpTaWduZWQtb2ZmLWJ5OiBJc2FhYyBCb3VrcmlzIDxpYm91a3Jp
c0BnbWFpbC5jb20+Ci0tLQogc291cmNlMy91dGlscy9uZXRfYWRzLmMgfCAzICsrLQogMSBmaWxl
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Nv
dXJjZTMvdXRpbHMvbmV0X2Fkcy5jIGIvc291cmNlMy91dGlscy9uZXRfYWRzLmMKaW5kZXggYWZl
NDdkYWQ4MzkuLmQwNTA5NjRkZDVlIDEwMDY0NAotLS0gYS9zb3VyY2UzL3V0aWxzL25ldF9hZHMu
YworKysgYi9zb3VyY2UzL3V0aWxzL25ldF9hZHMuYwpAQCAtMzA1LDcgKzMwNSw4IEBAIHJldHJ5
OgogCQl9CiAgICAgICAgfQogCi0Jc3RhdHVzID0gYWRzX2Nvbm5lY3QoYWRzKTsKKwlzdGF0dXMg
PSBjLT5vcHRfdXNlcl9zcGVjaWZpZWQgPyBhZHNfY29ubmVjdF91c2VyX2NyZWRzKGFkcykgOgor
CQkJCQkgYWRzX2Nvbm5lY3QoYWRzKTsKIAogCWlmICghQURTX0VSUl9PSyhzdGF0dXMpKSB7CiAK
LS0gCjIuMTQuMwoKCkZyb20gYzA2ZGVhZGNkNTk0NmFiZjkxOTQwMjk4YjA0ZmE4NWYwMzgwYjk2
NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNA
Z21haWwuY29tPgpEYXRlOiBNb24sIDIzIEp1bCAyMDE4IDEzOjI4OjE4ICswMzAwClN1YmplY3Q6
IFtQQVRDSCAzLzZdIG5ldC1hZHMtc2VhcmNoOiBmaXggdXNpbmcgbWFjaGluZSBhY2NvdW50IG9u
IGEgZG9tYWluCiBjb250cm9sbGVyCgpTZXQgb3B0X3VzZXJfc3BlY2lmaWVkIHRvIHRydWUgb25j
ZSBzZXR0aW5nIHRoZSBtYWNoaW5lIG5hbWUgYXQKb3B0X3VzZXJfbmFtZS4gVGhpcyBoZWxwcyBm
b3IgdGhlIG5ldCB0b29sIHRvIHdvcmsgb24gYSBEQyB3aXRoCm1hY2hpbmUgY3JlZGVudGlhbHMg
KC1QKSwgYnkgYWNxdWlyaW5nIGNyZWRlbnRpYWxzIGZvciBob3N0JEByZWFsbQooc2FtZSBhcyBv
biBkb21haW4gbWVtYmVyKSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3F1aXJlIGNyZWRzCmZvciBs
cF93b3JrZ3JvdXAoKUByZWFsbSBhbmQgZmFpbGluZy4KClNpZ25lZC1vZmYtYnk6IElzYWFjIEJv
dWtyaXMgPGlib3VrcmlzQGdtYWlsLmNvbT4KLS0tCiBzb3VyY2UzL3V0aWxzL25ldF91dGlsLmMg
fCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL3NvdXJj
ZTMvdXRpbHMvbmV0X3V0aWwuYyBiL3NvdXJjZTMvdXRpbHMvbmV0X3V0aWwuYwppbmRleCBhODRi
NGY1NTAwZS4uMGExNWZmMDI3NGYgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMvdXRpbHMvbmV0X3V0aWwu
YworKysgYi9zb3VyY2UzL3V0aWxzL25ldF91dGlsLmMKQEAgLTI3OSw2ICsyNzksNyBAQCBpbnQg
bmV0X3VzZV9rcmJfbWFjaGluZV9hY2NvdW50KHN0cnVjdCBuZXRfY29udGV4dCAqYykKIAkJcmV0
dXJuIC0xOwogCX0KIAljLT5vcHRfdXNlcl9uYW1lID0gdXNlcl9uYW1lOworCWMtPm9wdF91c2Vy
X3NwZWNpZmllZCA9IHRydWU7CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuMTQuMwoKCkZyb20gODUx
NWQ1YWNjYjI1NGFmMjBjOWYwMmQ0NTY5NTdhY2YyNTBiZDc4NyBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKRnJvbTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNAZ21haWwuY29tPgpEYXRlOiBTYXQs
IDE4IEF1ZyAyMDE4IDE1OjMyOjQzICswMzAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIG1pdC1rZGM6
IGZpeCBraW5pdCB0ZXN0IG9uIHN5c3RlbSBsYWNraW5nIGxkYnNlYXJjaAoKQnkgZml4aW5nIGJp
bmRpciB2YXJpYWJsZSBuYW1lLgoKU2lnbmVkLW9mZi1ieTogSXNhYWMgQm91a3JpcyA8aWJvdWty
aXNAZ21haWwuY29tPgotLS0KIHRlc3Rwcm9ncy9ibGFja2JveC90ZXN0X2tpbml0X21pdC5zaCB8
IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfbWl0LnNoIGIv
dGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfbWl0LnNoCmluZGV4IGRhYmY5OTE1ZWQxLi4z
NzA1NDI1MzZlMSAxMDA3NTUKLS0tIGEvdGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfbWl0
LnNoCisrKyBiL3Rlc3Rwcm9ncy9ibGFja2JveC90ZXN0X2tpbml0X21pdC5zaApAQCAtMzIsMTMg
KzMyLDEzIEBAIHNhbWJhX2VuYWJsZWFjY291bnQ9IiRzYW1iYV90b29sIHVzZXIgZW5hYmxlIgog
bWFjaGluZWFjY291bnRjY2FjaGU9IiRzYW1iYV9zcmNkaXIvc2NyaXB0aW5nL2Jpbi9tYWNoaW5l
YWNjb3VudGNjYWNoZSIKIAogbGRibW9kaWZ5PSJsZGJtb2RpZnkiCi1pZiBbIC14ICIkc2FtYmE0
YmluZGlyL2xkYm1vZGlmeSIgXTsgdGhlbgotCWxkYm1vZGlmeT0iJHNhbWJhNGJpbmRpci9sZGJt
b2RpZnkiCitpZiBbIC14ICIkc2FtYmFfYmluZGlyL2xkYm1vZGlmeSIgXTsgdGhlbgorCWxkYm1v
ZGlmeT0iJHNhbWJhX2JpbmRpci9sZGJtb2RpZnkiCiBmaQogCiBsZGJzZWFyY2g9ImxkYnNlYXJj
aCIKLWlmIFsgLXggIiRzYW1iYTRiaW5kaXIvbGRic2VhcmNoIiBdOyB0aGVuCi0JbGRic2VhcmNo
PSIkc2FtYmE0YmluZGlyL2xkYnNlYXJjaCIKK2lmIFsgLXggIiRzYW1iYV9iaW5kaXIvbGRic2Vh
cmNoIiBdOyB0aGVuCisJbGRic2VhcmNoPSIkc2FtYmFfYmluZGlyL2xkYnNlYXJjaCIKIGZpCiAK
IC4gYGRpcm5hbWUgJDBgL3N1YnVuaXQuc2gKLS0gCjIuMTQuMwoKCkZyb20gNzkwYzU2NzA1Y2Uy
ZDVlOTZkZTc2YzVkZTdhMGM0ZmNmYWZmOTA4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv
bTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNAZ21haWwuY29tPgpEYXRlOiBTdW4sIDE2IFNlcCAy
MDE4IDE5OjI5OjI4ICswMzAwClN1YmplY3Q6IFtQQVRDSCA1LzZdIG1pdC1rZGM6IGFkZCBiYXNp
YyBpbi1yZWFsbSBzNHUyc2VsZiB0ZXN0CgpTaWduZWQtb2ZmLWJ5OiBJc2FhYyBCb3VrcmlzIDxp
Ym91a3Jpc0BnbWFpbC5jb20+Ci0tLQogdGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfbWl0
LnNoIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYg
LS1naXQgYS90ZXN0cHJvZ3MvYmxhY2tib3gvdGVzdF9raW5pdF9taXQuc2ggYi90ZXN0cHJvZ3Mv
YmxhY2tib3gvdGVzdF9raW5pdF9taXQuc2gKaW5kZXggMzcwNTQyNTM2ZTEuLjQzNTE1MWUyYmY4
IDEwMDc1NQotLS0gYS90ZXN0cHJvZ3MvYmxhY2tib3gvdGVzdF9raW5pdF9taXQuc2gKKysrIGIv
dGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfbWl0LnNoCkBAIC0yNSw2ICsyNSw3IEBAIHNh
bWJhX2tpbml0PWtpbml0CiBzYW1iYV9rZGVzdHJveT1rZGVzdHJveQogc2FtYmFfa3Bhc3N3ZD1r
cGFzc3dkCiAKK25ldF90b29sPSIkc2FtYmFfYmluZGlyL25ldCAtcyAkU01CX0NPTkZfUEFUSCIK
IHNhbWJhX3Rvb2w9IiRzYW1iYV9iaW5kaXIvc2FtYmEtdG9vbCIKIHNhbWJhX3RleHBlY3Q9IiRz
YW1iYV9iaW5kaXIvdGV4cGVjdCIKIApAQCAtMjk5LDYgKzMwMCwxNCBAQCB0ZXN0X3NtYmNsaWVu
dCAiVGVzdCBtYWNoaW5lIGFjY291bnQgbG9naW4gd2l0aCBrZXJiZXJvcyBjY2FjaGUiICdscycg
LWsgeWVzIHx8CiAKIHRlc3RpdCAicmVzZXQgcGFzc3dvcmQgcG9saWNpZXMiICRWQUxHUklORCAk
c2FtYmFfdG9vbCBkb21haW4gcGFzc3dvcmRzZXR0aW5ncyBzZXQgJEFETUlOX0xEQk1PRElGWV9D
T05GSUcgLS1jb21wbGV4aXR5PWRlZmF1bHQgLS1oaXN0b3J5LWxlbmd0aD1kZWZhdWx0IC0tbWlu
LXB3ZC1sZW5ndGg9ZGVmYXVsdCAtLW1pbi1wd2QtYWdlPWRlZmF1bHQgLS1tYXgtcHdkLWFnZT1k
ZWZhdWx0IHx8IGZhaWxlZD1gZXhwciAkZmFpbGVkICsgMWAKIAorIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyBUZXN0IFM0VTJT
ZWxmIHdpdGggbmV0LWFkcy1rZXJiZXJvcy1wYWMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3JtIC1mICRLUkI1Q0NOQU1FX1BB
VEgKK3Rlc3RpdCAiZHVtcCBwYWMgb2YgbG9jYWwgbWFjaGluZSIgJFZBTEdSSU5EICRuZXRfdG9v
bCAtUCBhZHMga2VyYmVyb3MgcGFjIGR1bXAgfHwgZmFpbGVkPWBleHByICRmYWlsZWQgKyAxYAor
dGVzdGl0ICJkdW1wIHBhYyB2aWEgaW1wZXJzb25hdGUiICRWQUxHUklORCAkbmV0X3Rvb2wgLVAg
YWRzIGtlcmJlcm9zIHBhYyBkdW1wIGltcGVyc29uYXRlPSRVU0VSTkFNRUAkUkVBTE0gfHwgZmFp
bGVkPWBleHByICRmYWlsZWQgKyAxYAorCiAjIyMgQ2xlYW51cAogCiAkc2FtYmFfa2Rlc3Ryb3kK
LS0gCjIuMTQuMwoKCkZyb20gZjVhYWQ2MTRjNjdlNzYyNzMxNmY2MWIyM2FlMTg1YzdlM2ExZThm
MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNhYWMgQm91a3JpcyA8aWJvdWtyaXNA
Z21haWwuY29tPgpEYXRlOiBUdWUsIDE4IFNlcCAyMDE4IDE3OjIzOjUzICswMzAwClN1YmplY3Q6
IFtQQVRDSCA2LzZdIG1pdC1rZGM6IGFkZCBzNHUyc2VsZiBjcm9zcy1yZWFsbSB0ZXN0CgpTaWdu
ZWQtb2ZmLWJ5OiBJc2FhYyBCb3VrcmlzIDxpYm91a3Jpc0BnbWFpbC5jb20+Ci0tLQogdGVzdHBy
b2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfdHJ1c3RzX21pdC5zaCB8IDggKysrKysrKysKIDEgZmls
ZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90ZXN0cHJvZ3MvYmxhY2ti
b3gvdGVzdF9raW5pdF90cnVzdHNfbWl0LnNoIGIvdGVzdHByb2dzL2JsYWNrYm94L3Rlc3Rfa2lu
aXRfdHJ1c3RzX21pdC5zaAppbmRleCA2Njk2ZjQ0MTM2My4uODZkNTA2MjA4M2QgMTAwNzU1Ci0t
LSBhL3Rlc3Rwcm9ncy9ibGFja2JveC90ZXN0X2tpbml0X3RydXN0c19taXQuc2gKKysrIGIvdGVz
dHByb2dzL2JsYWNrYm94L3Rlc3Rfa2luaXRfdHJ1c3RzX21pdC5zaApAQCAtMzYsNiArMzYsNyBA
QCBzYW1iYV9rcGFzc3dkPWtwYXNzd2QKIAogc2FtYmFfdG9vbD0iJHNhbWJhX2JpbmRpci9zYW1i
YS10b29sIgogc2FtYmFfdGV4cGVjdD0iJHNhbWJhX2JpbmRpci90ZXhwZWN0IgorbmV0X3Rvb2w9
IiRzYW1iYTRiaW5kaXIvbmV0IC1zICRTTUJfQ09ORl9QQVRIIgogCiBzbWJjbGllbnQ9IiRzYW1i
YV9iaW5kaXIvc21iY2xpZW50Igogd2JpbmZvPSIkc2FtYmFfYmluZGlyL3diaW5mbyIKQEAgLTEy
OCw2ICsxMjksMTMgQEAgdGVzdGl0ICJ3YmluZm8gY2hlY2sgb3V0Z29pbmcgdHJ1c3QgcHciICRW
QUxHUklORCAkd2JpbmZvIC0tY2hlY2stc2VjcmV0IC0tZG9tYWkKIAogdGVzdF9zbWJjbGllbnQg
IlRlc3QgdXNlciBsb2dpbiB3aXRoIHRoZSBjaGFuZ2VkIG91dGdvaW5nIHNlY3JldCIgJ2xzJyAt
ayB5ZXMgLVUkVVNFUk5BTUVAJFJFQUxNJSRQQVNTV09SRCB8fCBmYWlsZWQ9YGV4cHIgJGZhaWxl
ZCArIDFgCiAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCisjIyMgVGVzdCBjcm9zcyByZWFsbSBTNFUyU2VsZgorIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgTm90aWNl
IHRoYXQgaXQgZG9lc24ndCByZXF1aXJlIGFuIFNQTiBhbmQgaXQgd29ya3Mgd2l0aAorIyBleHRl
cm5hbCB0cnVzdCB0b28gKG5vdCBmb3Jlc3Qgb25seSkgYmVjYXVzZSB0aGUgTUlUIGxpYnJhcnkK
KyMgY29udmVydHMgdGhlIHNlcnZlciBuYW1lIHRvIGFuIGVudGVycHJpc2UgbmFtZS4KK3Rlc3Rp
dCAiZHVtcCBwYWMgdmlhIGltcGVyc29uYXRlIHdpdGggdHJ1c3QiICRWQUxHUklORCAkbmV0X3Rv
b2wgLVAgYWRzIGtlcmJlcm9zIHBhYyBkdW1wIGltcGVyc29uYXRlPSRUUlVTVF9VU0VSTkFNRUAk
VFJVU1RfUkVBTE0gfHwgZmFpbGVkPWBleHByICRmYWlsZWQgKyAxYAogIyMjIENsZWFudXAKIAog
JHNhbWJhX2tkZXN0cm95Ci0tIAoyLjE0LjMKCg==
--000000000000e9bfda0576278d94
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
krbdev mailing list             krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev

--000000000000e9bfda0576278d94--

home help back first fref pref prev next nref lref last post