Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Nov 2001 14:12:14 +0100
From:      Uros Gruber <uros.gruber@sir-mag.com>
To:        dwcjr@FreeBSD.org
Cc:        ports@FreeBSD.org
Subject:   FreeBSD Port: postfix-current
Message-ID:  <22498429954.20011114141214@sir-mag.com>

next in thread | raw e-mail | index | archive | help
------------751ED1A5320277C1
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,


I have some patches for you. Can you please update port and upgrade
postfix on 20011105. I attach patches and i checked but there are some
files wich does not exist. And i don't know how to make patch to
automaticali create this missing file.

1 patch in separated by files. This is pgsql addon. And anothes is
maildir and mailbox virtual quota patch.

Please notify me when you will do this.


-- 
by ,
 Uros                          mailto:uros.gruber@sir-mag.com
------------751ED1A5320277C1
Content-Type: application/octet-stream; name="dict_open.c.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dict_open.c.patch"

LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3Rfb3Blbi5jCUZyaSBOb3YgIDIgMTY6
Mjg6MDQgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDVvbGQvc3JjL3V0aWwvZGljdF9vcGVuLmMJ
V2VkIE5vdiAxNCAxMjozNjozOCAyMDAxCkBAIC0xNjYsNiArMTY2LDcgQEAKICNpbmNsdWRlIDxk
aWN0X25pLmg+CiAjaW5jbHVkZSA8ZGljdF9sZGFwLmg+CiAjaW5jbHVkZSA8ZGljdF9teXNxbC5o
PgorI2luY2x1ZGUgPGRpY3RfcGdzcWwuaD4KICNpbmNsdWRlIDxkaWN0X3BjcmUuaD4KICNpbmNs
dWRlIDxkaWN0X3JlZ2V4cC5oPgogI2luY2x1ZGUgPHN0cmluZ29wcy5oPgpAQCAtMjA3LDYgKzIw
OCw5IEBACiAjZW5kaWYKICNpZmRlZiBIQVNfTVlTUUwKICAgICBESUNUX1RZUEVfTVlTUUwsIGRp
Y3RfbXlzcWxfb3BlbiwKKyNlbmRpZgorI2lmZGVmIEhBU19QR1NRTAorICAgIERJQ1RfVFlQRV9Q
R1NRTCwgZGljdF9wZ3NxbF9vcGVuLAogI2VuZGlmCiAjaWZkZWYgSEFTX1BDUkUKICAgICBESUNU
X1RZUEVfUENSRSwgZGljdF9wY3JlX29wZW4sCg==

------------751ED1A5320277C1
Content-Type: application/octet-stream; name="dict_pgsql.c.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dict_pgsql.c.patch"

LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3RfcGdzcWwuYwlXZWQgTm92IDE0IDEz
OjAyOjE2IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1b2xkL3NyYy91dGlsL2RpY3RfcGdzcWwu
YwlXZWQgTm92IDE0IDEyOjMwOjMzIDIwMDEKQEAgLTEgKzEsNTk2IEBACi0KKy8qKysNCisvKiBO
QU1FDQorLyoJZGljdF9wZ3NxbCAzDQorLyogU1VNTUFSWQ0KKy8qCWRpY3Rpb25hcnkgbWFuYWdl
ciBpbnRlcmZhY2UgdG8gZGIgZmlsZXMNCisvKiBTWU5PUFNJUw0KKy8qCSNpbmNsdWRlIDxkaWN0
Lmg+DQorLyoJI2luY2x1ZGUgPGRpY3RfcGdzcWwuaD4NCisvKg0KKy8qCURJQ1QJKmRpY3RfcGdz
cWxfb3BlbihuYW1lLCBkdW1teSwgdW51c2VkX2RpY3RfZmxhZ3MpDQorLyoJY29uc3QgY2hhcgkq
bmFtZTsNCisvKglpbnQgICAgIGR1bW15Ow0KKy8qCWludCAgICAgdW51c2VkX2RpY3RfZmxhZ3M7
DQorLyogREVTQ1JJUFRJT04NCisvKglkaWN0X3Bnc3FsX29wZW4oKSBjcmVhdGVzIGEgZGljdGlv
bmFyeSBvZiB0eXBlICdwZ3NxbCcuICBUaGlzDQorLyoJZGljdGlvbmFyeSBpcyBhbiBpbnRlcmZh
Y2UgZm9yIHRoZSBwb3N0Zml4IGtleS0+dmFsdWUgbWFwcGluZ3MNCisvKgl0byBwZ3NxbC4gIFRo
ZSByZXN1bHQgaXMgYSBwb2ludGVyIHRvIHRoZSBpbnN0YWxsZWQgZGljdGlvbmFyeSwNCisvKglv
ciBhIG51bGwgcG9pbnRlciBpbiBjYXNlIG9mIHByb2JsZW1zLg0KKy8qDQorLyoJVGhlIHBnc3Fs
IGRpY3Rpb25hcnkgY2FuIG1hbmFnZSBtdWx0aXBsZSBjb25uZWN0aW9ucyB0byBkaWZmZXJlbnQN
CisvKglzcWwgc2VydmVycyBvbiBkaWZmZXJlbnQgaG9zdHMuICBJdCBhc3N1bWVzIHRoYXQgdGhl
IHVuZGVybHlpbmcgZGF0YQ0KKy8qCW9uIGVhY2ggaG9zdCBpcyBpZGVudGljYWwgKG1pcnJvcmVk
KSBhbmQgbWFpbnRhaW5zIG9uZSBjb25uZWN0aW9uDQorLyoJYXQgYW55IGdpdmVuIHRpbWUuICBJ
ZiBhbnkgY29ubmVjdGlvbiBmYWlscywgIGFueSBvdGhlciBhdmFpbGFibGUNCisvKglvbmVzIHdp
bGwgYmUgb3BlbmVkIGFuZCB1c2VkLiAgVGhlIGludGVudCBvZiB0aGlzIGZlYXR1cmUgaXMgdG8g
ZWxpbWluYXRlDQorLyoJYSBzaW5nbGUgcG9pbnQgb2YgZmFpbHVyZSBmb3IgbWFpbCBzeXN0ZW1z
IHRoYXQgd291bGQgb3RoZXJ3aXNlIHJlbHkNCisvKglvbiBhIHNpbmdsZSBwZ3NxbCBzZXJ2ZXIu
DQorLyoNCisvKglBcmd1bWVudHM6DQorLyogLklQIG5hbWUNCisvKglUaGUgcGF0aCBvZiB0aGUg
UG9zdGdyZVNRTCBjb25maWd1cmF0aW9uIGZpbGUuICBUaGUgZmlsZSBlbmNvZGVzIGEgbnVtYmVy
IG9mDQorLyoJcGllY2VzIG9mIGluZm9ybWF0aW9uOiB1c2VybmFtZSwgcGFzc3dvcmQsIGRhdGFi
YXNlbmFtZSwgdGFibGUsDQorLyoJc2VsZWN0X2ZpZWxkLCB3aGVyZV9maWVsZCwgYW5kIGhvc3Rz
LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRoZSBtYXAgdG8NCisvKglyZWZlcmVuY2UgZGF0
YWJhc2VzIG9mIHRoZSBuYW1lICJ5b3VyX2RiIiBhbmQgZXhlY3V0ZSBhIHF1ZXJ5IGxpa2UgdGhp
czoNCisvKglzZWxlY3QgZm9yd19hZGRyIGZyb20gYWxpYXNlcyB3aGVyZSBhbGlhcyBsaWtlICc8
c29tZSB1c2VybmFtZT4nIGFnYWluc3QNCisvKglhbnkgZGF0YWJhc2UgY2FsbGVkICJ2bWFpbGVy
X2luZm8iIGxvY2F0ZWQgb24gaG9zdHMgaG9zdDEuc29tZS5kb21haW4gYW5kDQorLyoJaG9zdDIu
c29tZS5kb21haW4sIGxvZ2dpbmcgaW4gYXMgdXNlciAidm1haWxlciIgYW5kIHBhc3N3b3JkICJw
YXNzd2QiIHRoZW4NCisvKgl0aGUgY29uZmlndXJhdGlvbiBmaWxlIHNob3VsZCByZWFkOg0KKy8q
DQorLyoJdXNlciA9IHZtYWlsZXINCisvKglwYXNzd29yZCA9IHBhc3N3ZA0KKy8qCURCbmFtZSA9
IHZtYWlsZXJfaW5mbw0KKy8qCXRhYmxlID0gYWxpYXNlcw0KKy8qCXNlbGVjdF9maWVsZCA9IGZv
cndfYWRkcg0KKy8qCXdoZXJlX2ZpZWxkID0gYWxpYXMNCisvKglob3N0cyA9IGhvc3QxLnNvbWUu
ZG9tYWluIGhvc3QyLnNvbWUuZG9tYWluDQorLyoNCisvKiAuSVAgb3RoZXJfbmFtZQ0KKy8qCXJl
ZmVyZW5jZSBmb3Igb3V0c2lkZSB1c2UuDQorLyogLklQIHVudXN1ZWRfZmxhZ3MNCisvKgl1bnVz
ZWQgZmxhZ3MNCisvKiBTRUUgQUxTTw0KKy8qCWRpY3QoMykgZ2VuZXJpYyBkaWN0aW9uYXJ5IG1h
bmFnZXINCisvKiBBVVRIT1IoUykNCisvKglBYXJvbiBTZXRobWFuDQorLyoJYW5kcm9zeW5AcmF0
Ym94Lm9yZw0KKy8qDQorLyoJQmFzZWQgdXBvbiBkaWN0X215c3FsLmMgYnkNCisvKg0KKy8qCVNj
b3R0IENvdHRvbg0KKy8qCUlDIEdyb3VwLCBJbmMuDQorLyoJc2NvdHRAaWNncm91cC5jb20NCisv
Kg0KKy8qCUpvc2h1YSBNYXJjdXMNCisvKglJQyBHcm91cCwgSW5jLg0KKy8qCWpvc2hAaWNncm91
cC5jb20NCisvKi0tKi8NCisNCisvKiBTeXN0ZW0gbGlicmFyeS4gKi8NCisjaW5jbHVkZSAic3lz
X2RlZnMuaCINCisNCisjaWZkZWYgSEFTX1BHU1FMDQorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4N
CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPg0KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4NCisjaW5j
bHVkZSA8bmV0ZGIuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8c3RyaW5nLmg+
DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzeXNsb2cuaD4NCisjaW5jbHVkZSA8
dGltZS5oPg0KKw0KKy8qIFV0aWxpdHkgbGlicmFyeS4gKi8NCisjaW5jbHVkZSAiZGljdC5oIg0K
KyNpbmNsdWRlICJtc2cuaCINCisjaW5jbHVkZSAibXltYWxsb2MuaCINCisjaW5jbHVkZSAiZGlj
dF9wZ3NxbC5oIg0KKyNpbmNsdWRlICJhcmd2LmgiDQorI2luY2x1ZGUgInZzdHJpbmcuaCINCisj
aW5jbHVkZSAic3BsaXRfYXQuaCINCisjaW5jbHVkZSAiZmluZF9pbmV0LmgiDQorDQorLyogZXh0
ZXJuYWwgZGVjbGFyYXRpb25zICovDQorZXh0ZXJuIGludCBkaWN0X2Vycm5vOw0KKw0KK3R5cGVk
ZWYgc3RydWN0IHsNCisgICAgUEdjb25uICAqZGI7DQorICAgIGNoYXIgICAqaG9zdG5hbWU7DQor
ICAgIGludCAgICAgc3RhdDsJCQkvKiBTVEFUVU5UUklFRCB8IFNUQVRGQUlMIHwgU1RBVENVUiAq
Lw0KKyAgICB0aW1lX3QgIHRzOwkJCQkvKiB1c2VkIGZvciBhdHRlbXB0aW5nIHJlY29ubmVjdGlv
biAqLw0KKw0KK30gSE9TVDsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIGludCAgICAgbGVu
X2hvc3RzOwkJCS8qIG51bWJlciBvZiBob3N0cyAqLw0KKyAgICBIT1NUICAgKmRiX2hvc3RzOwkJ
CS8qIHRoZSBob3N0cyBvbiB3aGljaCB0aGUgZGF0YWJhc2VzICovDQorICAgIAkJCQkJLyogcmVz
aWRlICovDQorfSBQTFBHU1FMOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgY2hhciAgICp1
c2VybmFtZTsNCisgICAgY2hhciAgICpwYXNzd29yZDsNCisgICAgY2hhciAgICpkYm5hbWU7DQor
ICAgIGNoYXIgICAqdGFibGU7DQorICAgIGNoYXIgICAqc2VsZWN0X2ZpZWxkOw0KKyAgICBjaGFy
ICAgKndoZXJlX2ZpZWxkOw0KKyAgICBjaGFyICAgKmFkZGl0aW9uYWxfY29uZGl0aW9uczsNCisg
ICAgY2hhciAgKipob3N0bmFtZXM7DQorICAgIGludCAgICAgbGVuX2hvc3RzOw0KK30gUEdTUUxf
TkFNRTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIERJQ1QgICAgZGljdDsNCisgICAgUExQ
R1NRTCAqcGxkYjsNCisgICAgUEdTUUxfTkFNRSAqbmFtZTsNCit9IERJQ1RfUEdTUUw7DQorDQor
DQorLyogSnVzdCBtYWtlcyB0aGluZ3MgYSBsaXR0bGUgZWFzaWVyIGZvciBtZS4uICovDQorI2Rl
ZmluZSBQR1NRTF9SRVMgUEdyZXN1bHQNCisNCisvKiBpbnRlcm5hbCBmdW5jdGlvbiBkZWNsYXJh
dGlvbnMgKi8NCitzdGF0aWMgUExQR1NRTCAqcGxwZ3NxbF9pbml0KGNoYXIgKmhvc3RuYW1lc1td
LCBpbnQpOw0KK3N0YXRpYyBQR1NRTF9SRVMgKnBscGdzcWxfcXVlcnkoUExQR1NRTCAqLCBjb25z
dCBjaGFyICosIGNoYXIgKiwgY2hhciAqLCBjaGFyICopOw0KK3N0YXRpYyB2b2lkIHBscGdzcWxf
ZGVhbGxvYyhQTFBHU1FMICopOw0KK3N0YXRpYyB2b2lkIHBscGdzcWxfZG93bl9ob3N0KEhPU1Qg
Kik7DQorc3RhdGljIHZvaWQgcGxwZ3NxbF9jb25uZWN0X3NpbmdsZShIT1NUICosIGNoYXIgKiwg
Y2hhciAqLCBjaGFyICopOw0KK3N0YXRpYyBpbnQgcGxwZ3NxbF9yZWFkeV9yZWNvbm4oSE9TVCAq
KTsNCitzdGF0aWMgdm9pZCBkaWN0X3Bnc3FsX3VwZGF0ZShESUNUICosIGNvbnN0IGNoYXIgKiwg
Y29uc3QgY2hhciAqKTsNCitzdGF0aWMgY29uc3QgY2hhciAqZGljdF9wZ3NxbF9sb29rdXAoRElD
VCAqLCBjb25zdCBjaGFyICopOw0KK0RJQ1QgICAqZGljdF9wZ3NxbF9vcGVuKGNvbnN0IGNoYXIg
KiwgaW50LCBpbnQpOw0KK3N0YXRpYyB2b2lkIGRpY3RfcGdzcWxfY2xvc2UoRElDVCAqKTsNCitz
dGF0aWMgUEdTUUxfTkFNRSAqcGdzcWxuYW1lX3BhcnNlKGNvbnN0IGNoYXIgKik7DQorc3RhdGlj
IEhPU1QgaG9zdF9pbml0KGNoYXIgKik7DQorDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBw
dWJsaWMgaW50ZXJmYWNlIGRpY3RfcGdzcWxfbG9va3VwDQorICogZmluZCBkYXRhYmFzZSBlbnRy
eSByZXR1cm4gMCBpZiBubyBhbGlhcyBmb3VuZCwgc2V0IGRpY3RfZXJybm8NCisgKiBvbiBlcnJv
cnMgdG8gRElDVF9FUlJCT19SRVRSWSBhbmQgc2V0IGRpY3RfZXJybm8gdG8gMCBvbiBzdWNjZXNz
DQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8NCitzdGF0aWMgdm9pZCBwZ3NxbF9lc2NhcGVfc3RyaW5nKGNoYXIg
Km5ldywgY29uc3QgY2hhciAqb2xkLCB1bnNpZ25lZCBpbnQgbGVuKQ0KK3sNCisJdW5zaWduZWQg
aW50IHgsIHk7DQorCWZvcih4ID0gMCwgeSA9IDA7IHggPCBsZW47IHgrKywgeSsrKQ0KKwl7DQor
CQlzd2l0Y2gob2xkW3hdKQ0KKwkJew0KKwkJCWNhc2UgJ1xuJzoNCisJCQkJbmV3W3ldID0gJ1xc
JzsNCisJCQkJbmV3W3krK10gPSAnbic7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2UgJ1xyJzoNCisJ
CQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3W3krK10gPSAncic7DQorCQkJCWJyZWFrOw0KKwkJ
CWNhc2UgJ1wnJzoNCisJCQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3W3krK10gPSAnXCcnOw0K
KwkJCQlicmVhazsNCisJCQljYXNlICciJzoNCisJCQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3
W3krK10gPSAnIic7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2UgMDoNCisJCQkJbmV3W3ldID0gJ1xc
JzsNCisJCQkJbmV3W3krK10gPSAnMCc7DQorCQkJCWJyZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJ
CW5ld1t5XSA9IG9sZFt4XTsNCisJCQkJYnJlYWs7CQ0KKwkJfQ0KKwl9DQorCW5ld1t5XSA9IDA7
DQorfQ0KK3N0YXRpYyBjb25zdCBjaGFyICpkaWN0X3Bnc3FsX2xvb2t1cChESUNUICpkaWN0LCBj
b25zdCBjaGFyICpuYW1lKQ0KK3sNCisgICAgUEdTUUxfUkVTICpxdWVyeV9yZXM7DQorLy8gICAg
UEdTUUxfUk9XIHJvdzsNCisgICAgRElDVF9QR1NRTCAqZGljdF9wZ3NxbDsNCisgICAgUExQR1NR
TCAqcGxkYjsNCisgICAgc3RhdGljIFZTVFJJTkcgKnJlc3VsdDsNCisgICAgc3RhdGljIFZTVFJJ
TkcgKnF1ZXJ5ID0gMDsNCisgICAgaW50ICAgICBpLA0KKyAgICAgICAgICAgIGosDQorICAgICAg
ICAgICAgbnVtcm93czsNCisgICAgY2hhciAgICpuYW1lX2VzY2FwZWQgPSAwOw0KKw0KKyAgICBk
aWN0X3Bnc3FsID0gKERJQ1RfUEdTUUwgKikgZGljdDsNCisgICAgcGxkYiA9IGRpY3RfcGdzcWwt
PnBsZGI7DQorICAgIC8qIGluaXRpYWxpemF0aW9uICBmb3IgcXVlcnkgKi8NCisgICAgcXVlcnkg
PSB2c3RyaW5nX2FsbG9jKDI0KTsNCisgICAgdnN0cmluZ19zdHJjcHkocXVlcnksICIiKTsNCisg
ICAgaWYgKChuYW1lX2VzY2FwZWQgPSAoY2hhciAqKSBteW1hbGxvYygoc2l6ZW9mKGNoYXIpICog
KHN0cmxlbihuYW1lKSAqIDIpICsxKSkpID09IE5VTEwpIHsNCisJbXNnX2ZhdGFsKCJkaWN0X3Bn
c3FsX2xvb2t1cDogb3V0IG9mIG1lbW9yeS4iKTsNCisgICAgfQ0KKyAgICAvKiBwcmVwYXJlIHRo
ZSBxdWVyeSAqLw0KKyAgICBwZ3NxbF9lc2NhcGVfc3RyaW5nKG5hbWVfZXNjYXBlZCwgbmFtZSwg
KHVuc2lnbmVkIGludCkgc3RybGVuKG5hbWUpKTsNCisgICAgdnN0cmluZ19zcHJpbnRmKHF1ZXJ5
LCAic2VsZWN0ICVzIGZyb20gJXMgd2hlcmUgJXMgPSAnJXMnICVzIiwgZGljdF9wZ3NxbC0+bmFt
ZS0+c2VsZWN0X2ZpZWxkLA0KKyAgICAgICBkaWN0X3Bnc3FsLT5uYW1lLT50YWJsZSwgZGljdF9w
Z3NxbC0+bmFtZS0+d2hlcmVfZmllbGQsIG5hbWVfZXNjYXBlZCwNCisJCSAgICBkaWN0X3Bnc3Fs
LT5uYW1lLT5hZGRpdGlvbmFsX2NvbmRpdGlvbnMpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQor
CW1zZ19pbmZvKCJkaWN0X3Bnc3FsX2xvb2t1cCB1c2luZyBzcWwgcXVlcnk6ICVzIiwgdnN0cmlu
Z19zdHIocXVlcnkpKTsNCisgICAgLyogZnJlZSBtZW0gYXNzb2NpYXRlZCB3aXRoIHByZXBhcmlu
ZyB0aGUgcXVlcnkgKi8NCisgICAgbXlmcmVlKG5hbWVfZXNjYXBlZCk7DQorICAgIC8qIGRvIHRo
ZSBxdWVyeSAtIHNldCBkaWN0X2Vycm5vICYgY2xlYW51cCBpZiB0aGVyZSdzIGFuIGVycm9yICov
DQorICAgIGlmICgocXVlcnlfcmVzID0gcGxwZ3NxbF9xdWVyeShwbGRiLA0KKwkJCQkgICB2c3Ry
aW5nX3N0cihxdWVyeSksDQorCQkJCSAgIGRpY3RfcGdzcWwtPm5hbWUtPmRibmFtZSwNCisJCQkJ
ICAgZGljdF9wZ3NxbC0+bmFtZS0+dXNlcm5hbWUsDQorCQkJCSAgIGRpY3RfcGdzcWwtPm5hbWUt
PnBhc3N3b3JkKSkgPT0gMCkgew0KKwlkaWN0X2Vycm5vID0gRElDVF9FUlJfUkVUUlk7DQorCXZz
dHJpbmdfZnJlZShxdWVyeSk7DQorCXJldHVybiAwOw0KKyAgICB9DQorICAgIGRpY3RfZXJybm8g
PSAwOw0KKyAgICAvKiBmcmVlIHRoZSB2c3RyaW5nIHF1ZXJ5ICovDQorICAgIHZzdHJpbmdfZnJl
ZShxdWVyeSk7DQorICAgIG51bXJvd3MgPSBQUW50dXBsZXMocXVlcnlfcmVzKTsNCisgICAgaWYg
KG1zZ192ZXJib3NlKQ0KKwltc2dfaW5mbygiZGljdF9wZ3NxbF9sb29rdXA6IHJldHJpZXZlZCAl
ZCByb3dzIiwgbnVtcm93cyk7DQorICAgIGlmIChudW1yb3dzID09IDApIHsNCisJUFFjbGVhcihx
dWVyeV9yZXMpOw0KKwlyZXR1cm4gMDsNCisgICAgfQ0KKyAgICBpZiAocmVzdWx0ID09IDApDQor
CXJlc3VsdCA9IHZzdHJpbmdfYWxsb2MoMTApOw0KKyAgICB2c3RyaW5nX3N0cmNweShyZXN1bHQs
ICIiKTsNCisgICAgZm9yIChpID0gMDsgaSA8IG51bXJvd3M7IGkrKykgDQorICAgIHsNCisJaWYg
KGkgPiAwKSANCisJICAgIHZzdHJpbmdfc3RyY2F0KHJlc3VsdCwgIiwiKTsNCisJZm9yIChqID0g
MDsgaiA8IFBRbmZpZWxkcyhxdWVyeV9yZXMpOyBqKyspIHsNCisJICAgIGlmIChqID4gMCkgDQor
CQl2c3RyaW5nX3N0cmNhdChyZXN1bHQsICIsIik7DQorCSAgICB2c3RyaW5nX3N0cmNhdChyZXN1
bHQsIFBRZ2V0dmFsdWUocXVlcnlfcmVzLCBpLCBqKSk7DQorCSAgICBpZiAobXNnX3ZlcmJvc2Ug
PiAxKQ0KKwkJbXNnX2luZm8oImRpY3RfcGdzcWxfbG9va3VwOiByZXRyaWV2ZWQgZmllbGQ6ICVk
OiAlcyIsIGosIFBRZ2V0dmFsdWUocXVlcnlfcmVzLCBpLCBqKSk7DQorCX0NCisgICAgfQ0KKyAg
ICBQUWNsZWFyKHF1ZXJ5X3Jlcyk7DQorICAgIHJldHVybiB2c3RyaW5nX3N0cihyZXN1bHQpOw0K
K30NCisNCisvKg0KKyAqIHBscGdzcWxfcXVlcnkgLSBwcm9jZXNzIGEgTXlTUUwgcXVlcnkuICBS
ZXR1cm4gUEdTUUxfUkVTKiBvbiBzdWNjZXNzLg0KKyAqCQkgICAgIE9uIGZhaWx1cmUsIGxvZyBm
YWlsdXJlIGFuZCB0cnkgb3RoZXIgZGIgaW5zdGFuY2VzLg0KKyAqCQkgICAgIG9uIGZhaWx1cmUg
b2YgYWxsIGRiIGluc3RhbmNlcywgcmV0dXJuIDA7DQorICoJCSAgICAgY2xvc2UgdW5uZWNlc3Nh
cnkgYWN0aXZlIGNvbm5lY3Rpb25zDQorICovDQorDQorc3RhdGljIFBHU1FMX1JFUyAqcGxwZ3Nx
bF9xdWVyeShQTFBHU1FMICpQTERCLA0KKwkJCQkgICAgICAgIGNvbnN0IGNoYXIgKnF1ZXJ5LA0K
KwkJCQkgICAgICAgIGNoYXIgKmRibmFtZSwNCisJCQkJICAgICAgICBjaGFyICp1c2VybmFtZSwN
CisJCQkJICAgICAgICBjaGFyICpwYXNzd29yZCkNCit7DQorICAgIGludCAgICAgaTsNCisgICAg
SE9TVCAgICpob3N0Ow0KKyAgICBQR1NRTF9SRVMgKnJlcyA9IDA7DQorDQorICAgIGZvciAoaSA9
IDA7IGkgPCBQTERCLT5sZW5faG9zdHM7IGkrKykgew0KKwkvKiBjYW4ndCBkZWFsIHdpdGggdHlw
aW5nIG9yIHJlYWRpbmcgUExEQi0+ZGJfaG9zdHNbaV0gb3ZlciAmIG92ZXIgKi8NCisJaG9zdCA9
ICYoUExEQi0+ZGJfaG9zdHNbaV0pOw0KKwlpZiAobXNnX3ZlcmJvc2UgPiAxKQ0KKwkgICAgbXNn
X2luZm8oImRpY3RfcGdzcWw6IHRyeWluZyBob3N0ICVzIHN0YXQgJWQsIGxhc3QgcmVzICVwIiwg
aG9zdC0+aG9zdG5hbWUsIGhvc3QtPnN0YXQsIHJlcyk7DQorDQorCS8qIGFuc3dlciBhbHJlYWR5
IGZvdW5kICovDQorCWlmIChyZXMgIT0gMCAmJiBob3N0LT5zdGF0ID09IFNUQVRBQ1RJVkUpIHsN
CisJICAgIGlmIChtc2dfdmVyYm9zZSkNCisJCW1zZ19pbmZvKCJkaWN0X3Bnc3FsOiBjbG9zaW5n
IHVubmVzc2FyeSBjb25uZWN0aW9uIHRvICVzIiwNCisJCQkgaG9zdC0+aG9zdG5hbWUpOw0KKwkg
ICAgcGxwZ3NxbF9kb3duX2hvc3QoaG9zdCk7DQorCX0NCisJLyogdHJ5IHRvIGNvbm5lY3QgZm9y
IHRoZSBmaXJzdCB0aW1lIGlmIHdlIGRvbid0IGhhdmUgYSByZXN1bHQgeWV0ICovDQorCWlmIChy
ZXMgPT0gMCAmJiBob3N0LT5zdGF0ID09IFNUQVRVTlRSSUVEKSB7DQorCSAgICBpZiAobXNnX3Zl
cmJvc2UpDQorCQltc2dfaW5mbygiZGljdF9wZ3NxbDogYXR0ZW1wdGluZyB0byBjb25uZWN0IHRv
IGhvc3QgJXMiLA0KKwkJCSBob3N0LT5ob3N0bmFtZSk7DQorCSAgICBwbHBnc3FsX2Nvbm5lY3Rf
c2luZ2xlKGhvc3QsIGRibmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsNCisJfQ0KKw0KKwkvKg0K
KwkgKiB0cnkgdG8gcmVjb25uZWN0IGlmIHdlIGRvbid0IGhhdmUgYW4gYW5zd2VyIGFuZCB0aGUg
aG9zdCBoYWQgYQ0KKwkgKiBwcm9iIGluIHRoZSBwYXN0IGFuZCBpdCdzIHRpbWUgZm9yIGl0IHRv
IHJlY29ubmVjdA0KKwkgKi8NCisJaWYgKHJlcyA9PSAwICYmIGhvc3QtPnN0YXQgPT0gU1RBVEZB
SUwgJiYgaG9zdC0+dHMgPCB0aW1lKCh0aW1lX3QgKikgMCkpIHsNCisJICAgIGlmIChtc2dfdmVy
Ym9zZSkNCisJCW1zZ19pbmZvKCJkaWN0X3Bnc3FsOiBhdHRlbXB0aW5nIHRvIHJlY29ubmVjdCB0
byBob3N0ICVzIiwNCisJCQkgaG9zdC0+aG9zdG5hbWUpOw0KKwkgICAgcGxwZ3NxbF9jb25uZWN0
X3NpbmdsZShob3N0LCBkYm5hbWUsIHVzZXJuYW1lLCBwYXNzd29yZCk7DQorCX0NCisNCisJLyoN
CisJICogaWYgd2UgZG9uJ3QgaGF2ZSBhIHJlc3VsdCBhbmQgdGhlIGN1cnJlbnQgaG9zdCBpcyBt
YXJrZWQgYWN0aXZlLA0KKwkgKiB0cnkgdGhlIHF1ZXJ5LiAgSWYgdGhlIHF1ZXJ5IGZhaWxzLCBt
YXJrIHRoZSBob3N0IFNUQVRGQUlMDQorCSAqLw0KKwlpZiAocmVzID09IDAgJiYgaG9zdC0+c3Rh
dCA9PSBTVEFUQUNUSVZFKSB7DQorCSAgICBpZiAoKHJlcyA9IFBRZXhlYyhob3N0LT5kYiwgcXVl
cnkpKSkgew0KKwkJaWYgKG1zZ192ZXJib3NlKQ0KKwkJICAgICBtc2dfaW5mbygiZGljdF9wZ3Nx
bDogc3VjY2Vzc2Z1bCBxdWVyeSBmcm9tIGhvc3QgJXMiLCBob3N0LT5ob3N0bmFtZSk7DQorCSAg
ICB9IGVsc2Ugew0KKwkJbXNnX3dhcm4oIiVzIiwgUFFlcnJvck1lc3NhZ2UoaG9zdC0+ZGIpKTsN
CisJCXBscGdzcWxfZG93bl9ob3N0KGhvc3QpOw0KKwkgICAgfQ0KKwl9DQorICAgIH0NCisgICAg
cmV0dXJuIHJlczsNCit9DQorDQorLyoNCisgKiBwbHBnc3FsX2Nvbm5lY3Rfc2luZ2xlIC0NCisg
KiB1c2VkIHRvIHJlY29ubmVjdCB0byBhIHNpbmdsZSBkYXRhYmFzZSB3aGVuIG9uZSBpcyBkb3du
IG9yIG5vbmUgaXMNCisgKiBjb25uZWN0ZWQgeWV0LiBMb2cgYWxsIGVycm9ycyBhbmQgc2V0IHRo
ZSBzdGF0IGZpZWxkIG9mIGhvc3QgYWNjb3JkaW5nbHkNCisgKi8NCitzdGF0aWMgdm9pZCBwbHBn
c3FsX2Nvbm5lY3Rfc2luZ2xlKEhPU1QgKmhvc3QsIGNoYXIgKmRibmFtZSwgY2hhciAqdXNlcm5h
bWUsIGNoYXIgKnBhc3N3b3JkKQ0KK3sNCisgICAgY2hhciAgICpkZXN0aW5hdGlvbiA9IGhvc3Qt
Pmhvc3RuYW1lOw0KKyAgICBjaGFyICAgKnVuaXhfc29ja2V0ID0gMDsNCisgICAgY2hhciAgICpo
b3N0bmFtZSA9IDA7DQorICAgIGNoYXIgICAqc2VydmljZTsNCisgICAgY2hhciAgICpwb3J0ID0g
MDsNCisNCisgICAgLyoNCisgICAgICogQWQtaG9jIHBhcnNpbmcgY29kZS4gRXhwZWN0ICJ1bml4
OnBhdGhuYW1lIiBvciAiaW5ldDpob3N0OnBvcnQiLCB3aGVyZQ0KKyAgICAgKiBib3RoICJpbmV0
OiIgYW5kICI6cG9ydCIgYXJlIG9wdGlvbmFsLg0KKyAgICAgKi8NCisgICAgaWYgKHN0cm5jbXAo
ZGVzdGluYXRpb24sICJ1bml4OiIsIDUpID09IDApIHsNCisJdW5peF9zb2NrZXQgPSBkZXN0aW5h
dGlvbiArIDU7DQorICAgIH0gZWxzZSB7DQorCWlmIChzdHJuY21wKGRlc3RpbmF0aW9uLCAiaW5l
dDoiLCA1KSA9PSAwKQ0KKwkgICAgZGVzdGluYXRpb24gKz0gNTsNCisJaG9zdG5hbWUgPSBteXN0
cmR1cChkZXN0aW5hdGlvbik7DQorCWlmICgoc2VydmljZSA9IHNwbGl0X2F0KGhvc3RuYW1lLCAn
OicpKSAhPSAwKQ0KKwkgICAgcG9ydCA9IHNlcnZpY2U7DQorICAgIH0NCisNCisgICAgaWYoKGhv
c3QtPmRiID0gUFFzZXRkYkxvZ2luKGhvc3RuYW1lLCBwb3J0LCBOVUxMLCBOVUxMLCBkYm5hbWUs
IHVzZXJuYW1lLCBwYXNzd29yZCkpKSB7DQorCWlmKFBRc3RhdHVzKGhvc3QtPmRiKSA9PSBDT05O
RUNUSU9OX09LKQ0KKwl7DQorCQlpZiAobXNnX3ZlcmJvc2UpDQorCQkgICAgbXNnX2luZm8oImRp
Y3RfcGdzcWw6IHN1Y2Nlc3NmdWwgY29ubmVjdGlvbiB0byBob3N0ICVzIiwNCisJCQkgICAgIGhv
c3QtPmhvc3RuYW1lKTsNCisJCWhvc3QtPnN0YXQgPSBTVEFUQUNUSVZFOw0KKwl9IGVsc2UNCisJ
CW1zZ193YXJuKCIlcyIsIFBRZXJyb3JNZXNzYWdlKGhvc3QtPmRiKSk7DQorICAgIH0gZWxzZSB7
DQorCW1zZ193YXJuKCJVbmFibGUgdG8gY29ubmVjdCB0byBkYXRhYmFzZSIpOw0KKwlwbHBnc3Fs
X2Rvd25faG9zdChob3N0KTsNCisgICAgfQ0KKyAgICBpZiAoaG9zdG5hbWUpDQorCW15ZnJlZSho
b3N0bmFtZSk7DQorfQ0KKw0KKy8qDQorICogcGxwZ3NxbF9kb3duX2hvc3QgLSBtYXJrIGEgSE9T
VCBkb3duIHVwZGF0ZSB0cyBpZiBtYXJrZWQgZG93bg0KKyAqIGZvciB0aGUgZmlyc3QgdGltZSBz
byB0aGF0IHdlJ2xsIGtub3cgd2hlbiB0byByZXRyeSB0aGUgY29ubmVjdGlvbg0KKyAqLw0KK3N0
YXRpYyB2b2lkIHBscGdzcWxfZG93bl9ob3N0KEhPU1QgKmhvc3QpDQorew0KKyAgICBpZiAoaG9z
dC0+c3RhdCAhPSBTVEFURkFJTCkgew0KKwlob3N0LT50cyA9IHRpbWUoKHRpbWVfdCAqKSAwKSAr
IFJFVFJZX0NPTk5fSU5UVjsNCisJaG9zdC0+c3RhdCA9IFNUQVRGQUlMOw0KKyAgICB9DQorICAg
IFBRZmluaXNoKGhvc3QtPmRiKTsNCisgICAgaG9zdC0+ZGIgPSAwOw0KK30NCisNCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKg0KKyAqIHB1YmxpYyBpbnRlcmZhY2UgZGljdF9wZ3NxbF9vcGVuDQorICogICAgY3Jl
YXRlIGFzc29jaWF0aW9uIHdpdGggZGF0YWJhc2Ugd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMNCisg
KiAgICBwYXJzZSB0aGUgbWFwJ3MgY29uZmlnIGZpbGUNCisgKiAgICBhbGxvY2F0ZSBtZW1vcnkN
CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8NCitESUNUICAgKmRpY3RfcGdzcWxfb3Blbihjb25zdCBjaGFyICpu
YW1lLCBpbnQgdW51c2VkX2ZsYWdzLCBpbnQgdW51c2VkX2RpY3RfZmxhZ3MpDQorew0KKyAgICBE
SUNUX1BHU1FMICpkaWN0X3Bnc3FsOw0KKy8vICAgIGludCAgICAgY29ubmVjdGlvbnM7DQorDQor
ICAgIGRpY3RfcGdzcWwgPSAoRElDVF9QR1NRTCAqKSBteW1hbGxvYyhzaXplb2YoRElDVF9QR1NR
TCkpOw0KKyAgICBkaWN0X3Bnc3FsLT5kaWN0Lmxvb2t1cCA9IGRpY3RfcGdzcWxfbG9va3VwOw0K
KyAgICBkaWN0X3Bnc3FsLT5kaWN0LnVwZGF0ZSA9IGRpY3RfcGdzcWxfdXBkYXRlOw0KKyAgICBk
aWN0X3Bnc3FsLT5kaWN0LmNsb3NlID0gZGljdF9wZ3NxbF9jbG9zZTsNCisgICAgZGljdF9wZ3Nx
bC0+ZGljdC5mZCA9IC0xOwkJCS8qIHRoZXJlJ3Mgbm8gZmlsZSBkZXNjcmlwdG9yDQorCQkJCQkJ
ICogZm9yIGxvY2tpbmcgKi8NCisgICAgZGljdF9wZ3NxbC0+bmFtZSA9IHBnc3FsbmFtZV9wYXJz
ZShuYW1lKTsNCisgICAgZGljdF9wZ3NxbC0+cGxkYiA9IHBscGdzcWxfaW5pdChkaWN0X3Bnc3Fs
LT5uYW1lLT5ob3N0bmFtZXMsDQorCQkJCSAgICBkaWN0X3Bnc3FsLT5uYW1lLT5sZW5faG9zdHMp
Ow0KKyAgICBpZiAoZGljdF9wZ3NxbC0+cGxkYiA9PSBOVUxMKQ0KKwltc2dfZmF0YWwoImNvdWxk
bid0IGludGlhbGl6ZSBwbGRiIVxuIik7DQorICAgIGRpY3RfcmVnaXN0ZXIobmFtZSwgKERJQ1Qg
KikgZGljdF9wZ3NxbCk7DQorICAgIHJldHVybiAmZGljdF9wZ3NxbC0+ZGljdDsNCit9DQorDQor
LyogcGdzcWxuYW1lX3BhcnNlIC0gcGFyc2UgcGdzcWwgY29uZmlndXJhdGlvbiBmaWxlICovDQor
c3RhdGljIFBHU1FMX05BTUUgKnBnc3FsbmFtZV9wYXJzZShjb25zdCBjaGFyICpwZ3NxbGNmX3Bh
dGgpDQorew0KKyAgICBpbnQgICAgIGk7DQorICAgIGNoYXIgICAqbmFtZXZhbDsNCisgICAgY2hh
ciAgICpob3N0czsNCisgICAgUEdTUUxfTkFNRSAqbmFtZSA9IChQR1NRTF9OQU1FICopIG15bWFs
bG9jKHNpemVvZihQR1NRTF9OQU1FKSk7DQorICAgIEFSR1YgICAqaG9zdHNfYXJndjsNCisgICAg
VlNUUklORyAqb3B0X2RpY3RfbmFtZTsNCisNCisgICAgLyoNCisgICAgICogc2V0dXAgYSBkaWN0
IGNvbnRhaW5pbmcgaW5mbyBpbiB0aGUgcGdzcWwgY2YgZmlsZS4gdGhlIGRpY3QgaGFzIGENCisg
ICAgICogbmFtZSwgYW5kIGEgcGF0aC4gIFRoZSBuYW1lIG11c3QgYmUgZGlzdGluY3QgZnJvbSB0
aGUgcGF0aCwgb3IgdGhlDQorICAgICAqIGRpY3QgaW50ZXJmYWNlIGdldHMgY29uZnVzZWQuICBU
aGUgbmFtZSBtdXN0IGJlIGRpc3RpbmN0IGZvciB0d28NCisgICAgICogZGlmZmVyZW50IHBhdGhz
LCBvciB0aGUgY29uZmlndXJhdGlvbiBpbmZvIHdpbGwgY2FjaGUgYWNyb3NzIGRpZmZlcmVudA0K
KyAgICAgKiBwZ3NxbCBtYXBzLCB3aGljaCBjYW4gYmUgY29uZnVzaW5nLg0KKyAgICAgKi8NCisg
ICAgb3B0X2RpY3RfbmFtZSA9IHZzdHJpbmdfYWxsb2MoNjQpOw0KKyAgICB2c3RyaW5nX3Nwcmlu
dGYob3B0X2RpY3RfbmFtZSwgInBnc3FsIG9wdCBkaWN0ICVzIiwgcGdzcWxjZl9wYXRoKTsNCisg
ICAgZGljdF9sb2FkX2ZpbGUodnN0cmluZ19zdHIob3B0X2RpY3RfbmFtZSksIHBnc3FsY2ZfcGF0
aCk7DQorICAgIC8qIHBnc3FsIHVzZXJuYW1lIGxvb2t1cCAqLw0KKyAgICBpZiAoKG5hbWV2YWwg
PSAoY2hhciAqKSBkaWN0X2xvb2t1cCh2c3RyaW5nX3N0cihvcHRfZGljdF9uYW1lKSwgInVzZXIi
KSkgPT0gTlVMTCkNCisJbmFtZS0+dXNlcm5hbWUgPSBteXN0cmR1cCgiIik7DQorICAgIGVsc2UN
CisJbmFtZS0+dXNlcm5hbWUgPSBteXN0cmR1cChuYW1ldmFsKTsNCisgICAgaWYgKG1zZ192ZXJi
b3NlKQ0KKwltc2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IHNldCB1c2VybmFtZSB0byAnJXMn
IiwgbmFtZS0+dXNlcm5hbWUpOw0KKyAgICAvKiBwYXNzd29yZCBsb29rdXAgKi8NCisgICAgaWYg
KChuYW1ldmFsID0gKGNoYXIgKikgZGljdF9sb29rdXAodnN0cmluZ19zdHIob3B0X2RpY3RfbmFt
ZSksICJwYXNzd29yZCIpKSA9PSBOVUxMKQ0KKwluYW1lLT5wYXNzd29yZCA9IG15c3RyZHVwKCIi
KTsNCisgICAgZWxzZQ0KKwluYW1lLT5wYXNzd29yZCA9IG15c3RyZHVwKG5hbWV2YWwpOw0KKyAg
ICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVfcGFyc2UoKTogc2V0IHBh
c3N3b3JkIHRvICclcyciLCBuYW1lLT5wYXNzd29yZCk7DQorDQorICAgIC8qIGRhdGFiYXNlIG5h
bWUgbG9va3VwICovDQorICAgIGlmICgobmFtZXZhbCA9IChjaGFyICopIGRpY3RfbG9va3VwKHZz
dHJpbmdfc3RyKG9wdF9kaWN0X25hbWUpLCAiZGJuYW1lIikpID09IE5VTEwpDQorCW1zZ19mYXRh
bCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNsdWRlIGRhdGFiYXNlIG5hbWUi
LCBwZ3NxbGNmX3BhdGgpOw0KKyAgICBlbHNlDQorCW5hbWUtPmRibmFtZSA9IG15c3RyZHVwKG5h
bWV2YWwpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVfcGFy
c2UoKTogc2V0IGRhdGFiYXNlIG5hbWUgdG8gJyVzJyIsIG5hbWUtPmRibmFtZSk7DQorDQorICAg
IC8qIHRhYmxlIGxvb2t1cCAqLw0KKyAgICBpZiAoKG5hbWV2YWwgPSAoY2hhciAqKSBkaWN0X2xv
b2t1cCh2c3RyaW5nX3N0cihvcHRfZGljdF9uYW1lKSwgInRhYmxlIikpID09IE5VTEwpDQorCW1z
Z19mYXRhbCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNsdWRlIHRhYmxlIG5h
bWUiLCBwZ3NxbGNmX3BhdGgpOw0KKyAgICBlbHNlDQorCW5hbWUtPnRhYmxlID0gbXlzdHJkdXAo
bmFtZXZhbCk7DQorICAgIGlmIChtc2dfdmVyYm9zZSkNCisJbXNnX2luZm8oInBnc3FsbmFtZV9w
YXJzZSgpOiBzZXQgdGFibGUgbmFtZSB0byAnJXMnIiwgbmFtZS0+dGFibGUpOw0KKw0KKyAgICAv
KiBzZWxlY3QgZmllbGQgbG9va3VwICovDQorICAgIGlmICgobmFtZXZhbCA9IChjaGFyICopIGRp
Y3RfbG9va3VwKHZzdHJpbmdfc3RyKG9wdF9kaWN0X25hbWUpLCAic2VsZWN0X2ZpZWxkIikpID09
IE5VTEwpDQorCW1zZ19mYXRhbCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNs
dWRlIHNlbGVjdCBmaWVsZCIsIHBnc3FsY2ZfcGF0aCk7DQorICAgIGVsc2UNCisJbmFtZS0+c2Vs
ZWN0X2ZpZWxkID0gbXlzdHJkdXAobmFtZXZhbCk7DQorICAgIGlmIChtc2dfdmVyYm9zZSkNCisJ
bXNnX2luZm8oInBnc3FsbmFtZV9wYXJzZSgpOiBzZXQgc2VsZWN0X2ZpZWxkIHRvICclcyciLCBu
YW1lLT5zZWxlY3RfZmllbGQpOw0KKw0KKyAgICAvKiB3aGVyZSBmaWVsZCBsb29rdXAgKi8NCisg
ICAgaWYgKChuYW1ldmFsID0gKGNoYXIgKikgZGljdF9sb29rdXAodnN0cmluZ19zdHIob3B0X2Rp
Y3RfbmFtZSksICJ3aGVyZV9maWVsZCIpKSA9PSBOVUxMKQ0KKwltc2dfZmF0YWwoIiVzOiBwZ3Nx
bCBvcHRpb25zIGZpbGUgZG9lcyBub3QgaW5jbHVkZSB3aGVyZSBmaWVsZCIsIHBnc3FsY2ZfcGF0
aCk7DQorICAgIGVsc2UNCisJbmFtZS0+d2hlcmVfZmllbGQgPSBteXN0cmR1cChuYW1ldmFsKTsN
CisgICAgaWYgKG1zZ192ZXJib3NlKQ0KKwltc2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IHNl
dCB3aGVyZV9maWVsZCB0byAnJXMnIiwgbmFtZS0+d2hlcmVfZmllbGQpOw0KKw0KKyAgICAvKiBh
ZGRpdGlvbmFsIGNvbmRpdGlvbnMgKi8NCisgICAgaWYgKChuYW1ldmFsID0gKGNoYXIgKikgZGlj
dF9sb29rdXAodnN0cmluZ19zdHIob3B0X2RpY3RfbmFtZSksICJhZGRpdGlvbmFsX2NvbmRpdGlv
bnMiKSkgPT0gTlVMTCkNCisJbmFtZS0+YWRkaXRpb25hbF9jb25kaXRpb25zID0gbXlzdHJkdXAo
IiIpOw0KKyAgICBlbHNlDQorCW5hbWUtPmFkZGl0aW9uYWxfY29uZGl0aW9ucyA9IG15c3RyZHVw
KG5hbWV2YWwpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVf
cGFyc2UoKTogc2V0IGFkZGl0aW9uYWxfY29uZGl0aW9ucyB0byAnJXMnIiwgbmFtZS0+YWRkaXRp
b25hbF9jb25kaXRpb25zKTsNCisNCisgICAgLyogcGdzcWwgc2VydmVyIGhvc3RzICovDQorICAg
IGlmICgobmFtZXZhbCA9IChjaGFyICopIGRpY3RfbG9va3VwKHZzdHJpbmdfc3RyKG9wdF9kaWN0
X25hbWUpLCAiaG9zdHMiKSkgPT0gTlVMTCkNCisJaG9zdHMgPSBteXN0cmR1cCgiIik7DQorICAg
IGVsc2UNCisJaG9zdHMgPSBteXN0cmR1cChuYW1ldmFsKTsNCisgICAgLyogY29vIGFyZ3YgaW50
ZXJmYWNlICovDQorICAgIGhvc3RzX2FyZ3YgPSBhcmd2X3NwbGl0KGhvc3RzLCAiICxcdFxyXG4i
KTsNCisNCisgICAgaWYgKGhvc3RzX2FyZ3YtPmFyZ2MgPT0gMCkgewkJLyogbm8gaG9zdHMgc3Bl
Y2lmaWVkLA0KKwkJCQkJCSAqIGRlZmF1bHQgdG8gJ2xvY2FsaG9zdCcgKi8NCisJaWYgKG1zZ192
ZXJib3NlKQ0KKwkgICAgbXNnX2luZm8oInBnc3FsbmFtZV9wYXJzZSgpOiBubyBob3N0bmFtZXMg
c3BlY2lmaWVkLCBkZWZhdWx0aW5nIHRvICdsb2NhbGhvc3QnIik7DQorCWFyZ3ZfYWRkKGhvc3Rz
X2FyZ3YsICJsb2NhbGhvc3QiLCBBUkdWX0VORCk7DQorCWFyZ3ZfdGVybWluYXRlKGhvc3RzX2Fy
Z3YpOw0KKyAgICB9DQorICAgIG5hbWUtPmxlbl9ob3N0cyA9IGhvc3RzX2FyZ3YtPmFyZ2M7DQor
ICAgIG5hbWUtPmhvc3RuYW1lcyA9IChjaGFyICoqKSBteW1hbGxvYygoc2l6ZW9mKGNoYXIgKikp
ICogbmFtZS0+bGVuX2hvc3RzKTsNCisgICAgaSA9IDA7DQorICAgIGZvciAoaSA9IDA7IGhvc3Rz
X2FyZ3YtPmFyZ3ZbaV0gIT0gTlVMTDsgaSsrKSB7DQorCW5hbWUtPmhvc3RuYW1lc1tpXSA9IG15
c3RyZHVwKGhvc3RzX2FyZ3YtPmFyZ3ZbaV0pOw0KKwlpZiAobXNnX3ZlcmJvc2UpDQorCSAgICBt
c2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IGFkZGluZyBob3N0ICclcycgdG8gbGlzdCBvZiBw
Z3NxbCBzZXJ2ZXIgaG9zdHMiLA0KKwkJICAgICBuYW1lLT5ob3N0bmFtZXNbaV0pOw0KKyAgICB9
DQorICAgIG15ZnJlZShob3N0cyk7DQorICAgIHZzdHJpbmdfZnJlZShvcHRfZGljdF9uYW1lKTsN
CisgICAgYXJndl9mcmVlKGhvc3RzX2FyZ3YpOw0KKyAgICByZXR1cm4gbmFtZTsNCit9DQorDQor
DQorLyoNCisgKiBwbHBnc3FsX2luaXQgLSBpbml0YWxpemUgYSBQR1NRTCBkYXRhYmFzZS4NCisg
KgkJICAgIFJldHVybiBOVUxMIG9uIGZhaWx1cmUsIG9yIGEgUExQR1NRTCAqIG9uIHN1Y2Nlc3Mu
DQorICovDQorc3RhdGljIFBMUEdTUUwgKnBscGdzcWxfaW5pdChjaGFyICpob3N0bmFtZXNbXSwg
aW50IGxlbl9ob3N0cykNCit7DQorICAgIFBMUEdTUUwgKlBMREI7DQorICAgIGludCAgICAgaTsN
CisvLyAgICBIT1NUICAgIGhvc3Q7DQorDQorICAgIGlmICgoUExEQiA9IChQTFBHU1FMICopIG15
bWFsbG9jKHNpemVvZihQTFBHU1FMKSkpID09IE5VTEwpIHsNCisJbXNnX2ZhdGFsKCJteW1hbGxv
YyBvZiBwbGRiIGZhaWxlZCIpOw0KKyAgICB9DQorICAgIFBMREItPmxlbl9ob3N0cyA9IGxlbl9o
b3N0czsNCisgICAgaWYgKChQTERCLT5kYl9ob3N0cyA9IChIT1NUICopIG15bWFsbG9jKHNpemVv
ZihIT1NUKSAqIGxlbl9ob3N0cykpID09IE5VTEwpDQorCXJldHVybiBOVUxMOw0KKyAgICBmb3Ig
KGkgPSAwOyBpIDwgbGVuX2hvc3RzOyBpKyspIHsNCisJUExEQi0+ZGJfaG9zdHNbaV0gPSBob3N0
X2luaXQoaG9zdG5hbWVzW2ldKTsNCisgICAgfQ0KKyAgICByZXR1cm4gUExEQjsNCit9DQorDQor
DQorLyogaG9zdF9pbml0IC0gaW5pdGlhbGl6ZSBIT1NUIHN0cnVjdHVyZSAqLw0KK3N0YXRpYyBI
T1NUIGhvc3RfaW5pdChjaGFyICpob3N0bmFtZSkNCit7DQorICAgIEhPU1QgICAgaG9zdDsNCisN
CisgICAgaG9zdC5zdGF0ID0gU1RBVFVOVFJJRUQ7DQorICAgIGhvc3QuaG9zdG5hbWUgPSBteXN0
cmR1cChob3N0bmFtZSk7DQorICAgIGhvc3QuZGIgPSAwOw0KKyAgICBob3N0LnRzID0gMDsNCisg
ICAgcmV0dXJuIGhvc3Q7DQorfQ0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogcHVibGljIGludGVy
ZmFjZSBkaWN0X3Bnc3FsX2Nsb3NlDQorICogdW5yZWdpc3RlciwgZGlzYXNzb2NpYXRlIGZyb20g
ZGF0YWJhc2UsIGZyZWVpbmcgYXBwcm9wcmlhdGUgbWVtb3J5DQorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQor
c3RhdGljIHZvaWQgZGljdF9wZ3NxbF9jbG9zZShESUNUICpkaWN0KQ0KK3sNCisgICAgaW50ICAg
ICBpOw0KKyAgICBESUNUX1BHU1FMICpkaWN0X3Bnc3FsID0gKERJQ1RfUEdTUUwgKikgZGljdDsN
CisNCisgICAgcGxwZ3NxbF9kZWFsbG9jKGRpY3RfcGdzcWwtPnBsZGIpOw0KKyAgICBteWZyZWUo
ZGljdF9wZ3NxbC0+bmFtZS0+dXNlcm5hbWUpOw0KKyAgICBteWZyZWUoZGljdF9wZ3NxbC0+bmFt
ZS0+cGFzc3dvcmQpOw0KKyAgICBteWZyZWUoZGljdF9wZ3NxbC0+bmFtZS0+ZGJuYW1lKTsNCisg
ICAgbXlmcmVlKGRpY3RfcGdzcWwtPm5hbWUtPnRhYmxlKTsNCisgICAgbXlmcmVlKGRpY3RfcGdz
cWwtPm5hbWUtPnNlbGVjdF9maWVsZCk7DQorICAgIG15ZnJlZShkaWN0X3Bnc3FsLT5uYW1lLT53
aGVyZV9maWVsZCk7DQorICAgIG15ZnJlZShkaWN0X3Bnc3FsLT5uYW1lLT5hZGRpdGlvbmFsX2Nv
bmRpdGlvbnMpOw0KKyAgICBmb3IgKGkgPSAwOyBpIDwgZGljdF9wZ3NxbC0+bmFtZS0+bGVuX2hv
c3RzOyBpKyspIHsNCisJbXlmcmVlKGRpY3RfcGdzcWwtPm5hbWUtPmhvc3RuYW1lc1tpXSk7DQor
ICAgIH0NCisgICAgbXlmcmVlKChjaGFyICopIGRpY3RfcGdzcWwtPm5hbWUtPmhvc3RuYW1lcyk7
DQorICAgIG15ZnJlZSgoY2hhciAqKSBkaWN0X3Bnc3FsLT5uYW1lKTsNCit9DQorDQorLyogcGxw
Z3NxbF9kZWFsbG9jIC0gZnJlZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIFBMUEdTUUwgY2xvc2Ug
ZGF0YWJhc2VzICovDQorc3RhdGljIHZvaWQgcGxwZ3NxbF9kZWFsbG9jKFBMUEdTUUwgKlBMREIp
DQorew0KKyAgICBpbnQgICAgIGk7DQorDQorICAgIGZvciAoaSA9IDA7IGkgPCBQTERCLT5sZW5f
aG9zdHM7IGkrKykgew0KKwlpZiAoUExEQi0+ZGJfaG9zdHNbaV0uZGIpDQorCSAgICBQUWZpbmlz
aChQTERCLT5kYl9ob3N0c1tpXS5kYik7DQorCW15ZnJlZShQTERCLT5kYl9ob3N0c1tpXS5ob3N0
bmFtZSk7DQorICAgIH0NCisgICAgbXlmcmVlKChjaGFyICopIFBMREItPmRiX2hvc3RzKTsNCisg
ICAgbXlmcmVlKChjaGFyICopIChQTERCKSk7DQorfQ0KKw0KKw0KKy8qKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQor
ICogcHVibGljIGludGVyZmFjZSBkaWN0X3Bnc3FsX3VwZGF0ZSAtIGFkZCBvciB1cGRhdGUgdGFi
bGUgZW50cnkNCisgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorc3RhdGljIHZvaWQgZGljdF9wZ3NxbF91
cGRhdGUoRElDVCAqZGljdCwgY29uc3QgY2hhciAqdW51c2VkX25hbWUsIGNvbnN0IGNoYXIgKnVu
dXNlZF92YWx1ZSkNCit7DQorICAgIERJQ1RfUEdTUUwgKmRpY3RfcGdzcWwgPSAoRElDVF9QR1NR
TCAqKSBkaWN0Ow0KKw0KKyAgICBtc2dfZmF0YWwoImRpY3RfcGdzcWxfdXBkYXRlOiBhdHRlbXB0
IHRvIHVwZGF0ZSBwZ3NxbCBkYXRhYmFzZSIpOw0KK30NCisNCisjZW5kaWYNCg==

------------751ED1A5320277C1
Content-Type: application/octet-stream; name="dict_pgsql.h.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dict_pgsql.h.patch"

LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3RfcGdzcWwuaAlXZWQgTm92IDE0IDEz
OjAyOjI1IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1b2xkL3NyYy91dGlsL2RpY3RfcGdzcWwu
aAlXZWQgTm92IDE0IDEyOjMwOjMzIDIwMDEKQEAgLTEgKzEsMTUgQEAKLQorI2lmZGVmIEhBU19Q
R1NRTA0KKw0KKyNpbmNsdWRlIDx0aW1lLmg+DQorI2luY2x1ZGUgPHBvc3RncmVzLmg+DQorI2lu
Y2x1ZGUgPGxpYnBxLWZlLmg+DQorDQorI2RlZmluZSBTVEFUQUNUSVZFIDANCisjZGVmaW5lIFNU
QVRGQUlMIDENCisjZGVmaW5lIFNUQVRVTlRSSUVEIDINCisjZGVmaW5lIFJFVFJZX0NPTk5fSU5U
ViA2MAkJLyogMSBtaW51dGUgKi8NCisNCitleHRlcm4gRElDVCAqZGljdF9wZ3NxbF9vcGVuKGNv
bnN0IGNoYXIgKm5hbWUsIGludCB1bnVzZWRfZmxhZ3MsIGludCBkaWN0X2ZsYWdzKTsNCisNCisN
CisjZW5kaWYNCg==

------------751ED1A5320277C1
Content-Type: application/octet-stream; name="Makefile.in.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Makefile.in.patch"

LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL01ha2VmaWxlLmluCVNhdCBOb3YgIDMgMDI6
MTc6MzcgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDVvbGQvc3JjL3V0aWwvTWFrZWZpbGUuaW4J
V2VkIE5vdiAxNCAxMjozOTo0MSAyMDAxCkBAIC0yLDcgKzIsNyBAQAogU1JDUwk9IGFyZ3YuYyBh
cmd2X3NwbGl0LmMgYmFzZW5hbWUuYyBiaW5oYXNoLmMgY2hyb290X3VpZC5jIFwKIAljbG9zZV9v
bl9leGVjLmMgY29uY2F0ZW5hdGUuYyBkaWN0LmMgZGljdF9kYi5jIGRpY3RfZGJtLmMgXAogCWRp
Y3RfZW52LmMgZGljdF9odC5jIGRpY3RfbGRhcC5jIGRpY3RfbXlzcWwuYyBkaWN0X25pLmMgZGlj
dF9uaXMuYyBcCi0JZGljdF9uaXNwbHVzLmMgZGljdF9vcGVuLmMgZGlyX2ZvcmVzdC5jIGRvemUu
YyBlbnZpcm9uLmMgXAorCWRpY3RfbmlzcGx1cy5jIGRpY3Rfb3Blbi5jIGRpY3RfcGdzcWwuYyBk
aXJfZm9yZXN0LmMgZG96ZS5jIGVudmlyb24uYyBcCiAJZXZlbnRzLmMgZXhlY19jb21tYW5kLmMg
Zmlmb19saXN0ZW4uYyBmaWZvX3RyaWdnZXIuYyBmaWxlX2xpbWl0LmMgXAogCWZpbmRfaW5ldC5j
IGZzc3BhY2UuYyBmdWxsbmFtZS5jIGdldF9kb21haW5uYW1lLmMgZ2V0X2hvc3RuYW1lLmMgXAog
CWh0YWJsZS5jIGluZXRfYWRkcl9ob3N0LmMgaW5ldF9hZGRyX2xpc3QuYyBpbmV0X2FkZHJfbG9j
YWwuYyBcCkBAIC0yOCw3ICsyOCw3IEBACiBPQkpTCT0gYXJndi5vIGFyZ3Zfc3BsaXQubyBiYXNl
bmFtZS5vIGJpbmhhc2gubyBjaHJvb3RfdWlkLm8gXAogCWNsb3NlX29uX2V4ZWMubyBjb25jYXRl
bmF0ZS5vIGRpY3QubyBkaWN0X2RiLm8gZGljdF9kYm0ubyBcCiAJZGljdF9lbnYubyBkaWN0X2h0
Lm8gZGljdF9sZGFwLm8gZGljdF9teXNxbC5vIGRpY3RfbmkubyBkaWN0X25pcy5vIFwKLQlkaWN0
X25pc3BsdXMubyBkaWN0X29wZW4ubyBkaXJfZm9yZXN0Lm8gZG96ZS5vIGVudmlyb24ubyBcCisJ
ZGljdF9uaXNwbHVzLm8gZGljdF9vcGVuLm8gZGljdF9wZ3NxbC5vIGRpcl9mb3Jlc3QubyBkb3pl
Lm8gZW52aXJvbi5vIFwKIAlldmVudHMubyBleGVjX2NvbW1hbmQubyBmaWZvX2xpc3Rlbi5vIGZp
Zm9fdHJpZ2dlci5vIGZpbGVfbGltaXQubyBcCiAJZmluZF9pbmV0Lm8gZnNzcGFjZS5vIGZ1bGxu
YW1lLm8gZ2V0X2RvbWFpbm5hbWUubyBnZXRfaG9zdG5hbWUubyBcCiAJaHRhYmxlLm8gaW5ldF9h
ZGRyX2hvc3QubyBpbmV0X2FkZHJfbGlzdC5vIGluZXRfYWRkcl9sb2NhbC5vIFwKQEAgLTUzLDcg
KzUzLDcgQEAKIAlhdHRyX3NjYW4ubyBiYXNlNjRfY29kZS5vCiBIRFJTCT0gYXJndi5oIGF0dHIu
aCBiaW5oYXNoLmggY2hyb290X3VpZC5oIGNvbm5lY3QuaCBkaWN0LmggZGljdF9kYi5oIFwKIAlk
aWN0X2RibS5oIGRpY3RfZW52LmggZGljdF9odC5oIGRpY3RfbGRhcC5oIGRpY3RfbXlzcWwuaCBc
Ci0JZGljdF9uaS5oIGRpY3RfbmlzLmggZGljdF9uaXNwbHVzLmggZGlyX2ZvcmVzdC5oIGV2ZW50
cy5oIFwKKwlkaWN0X25pLmggZGljdF9uaXMuaCBkaWN0X25pc3BsdXMuaCBkaWN0X3Bnc3FsLmgg
ZGlyX2ZvcmVzdC5oIGV2ZW50cy5oIFwKIAlleGVjX2NvbW1hbmQuaCBmaW5kX2luZXQuaCBmc3Nw
YWNlLmggZnVsbG5hbWUuaCBnZXRfZG9tYWlubmFtZS5oIFwKIAlnZXRfaG9zdG5hbWUuaCBodGFi
bGUuaCBpbmV0X2FkZHJfaG9zdC5oIGluZXRfYWRkcl9saXN0LmggXAogCWluZXRfYWRkcl9sb2Nh
bC5oIGluZXRfdXRpbC5oIGlvc3R1ZmYuaCBsaW5lX3dyYXAuaCBsaXN0ZW4uaCBsc3RhdF9hcy5o
IFwK

------------751ED1A5320277C1
Content-Type: application/octet-stream; name="PGSQL_README.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="PGSQL_README.patch"

ZGlmZiAtdSAtciAtTiBzbmFwc2hvdC0yMDAxMTEwNS9QR1NRTF9SRUFETUUgc25hcHNob3QtMjAw
MTExMDVvbGQvUEdTUUxfUkVBRE1FCi0tLSBzbmFwc2hvdC0yMDAxMTEwNS9QR1NRTF9SRUFETUUJ
V2VkIE5vdiAxNCAxMjo1OTo1NyAyMDAxCisrKyBzbmFwc2hvdC0yMDAxMTEwNW9sZC9QR1NRTF9S
RUFETUUJV2VkIE5vdiAxNCAxMjozMDozMiAyMDAxCkBAIC0xICsxLDk0IEBACitQb3N0Z3JlU1FM
IG1hcCB0eXBlIGZvciBQb3N0Zml4LgorCitUaGlzIGlzIGJhc2VkIHVwb24gY29kZSB3cml0dGVu
IGJ5IFNjb3R0IENvdHRvbiBhbmQgSm9zaHVhIE1hcmN1cywgSUMgR3JvdXAsIEluYy4KKworQWN0
dWFsbHkgaXQgd2FzIHJlYWxseSBtb3JlIG9mIGEgc2VhcmNoIGFuZCByZXBsYWNlIHNvcnQgb2Yg
ZGVhbCBmb3IgdGhlCittb3N0IHBhcnQuCisKK0FueXdheXMsIHRoZSBQb3N0Z3JlU1FMIGNoYW5n
ZXMgd2VyZSBkb25lIGJ5IEFhcm9uIFNldGhtYW4KKzxhbmRyb3N5bkByYXRib3gub3JnPiBzbyBi
dWcgaGltIHdpdGggY29tcGxhaW50cyBpZiB0aGlzIGRvZXNuJ3Qgd29yayByaWdodC4KKworCitJ
biBvcmRlciB0byBidWlsZCBwb3N0Zml4IHdpdGggcGdzcWwgbWFwIHN1cHBvcnQsIHlvdSB3aWxs
IG5lZWQgdG8gYWRkCistREhBU19QR1NRTCBhbmQgLUkgZm9yIHRoZSBkaXJlY3RvcnkgY29udGFp
bmluZyB0aGUgUG9zdGdyZVNRTCBoZWFkZXJzIGFuZAordGhlIGxpYnBxIGxpYnJhcnkgdG8gQVVY
TElCUywgZm9yIGV4YW1wbGU6CisKK21ha2UgLWYgTWFrZWZpbGUuaW5pdCBtYWtlZmlsZXMgXAor
CSdDQ0FSR1M9LURIQVNfUEdTUUwgLUkvdXNyL2luY2x1ZGUvcGdzcWwnIFwKKwknQVVYTElCUz0t
TC91c3IvbGliIC1scHEnCisKK3RoZW4sIGp1c3QgcnVuICdtYWtlJy4KKworUG9zdGZpeCBpbnN0
YWxsYXRpb25zIHdoaWNoIG1heSBiZW5lZml0IGZyb20gdXNpbmcgcGdzcWwgbWFwIHR5cGVzCitp
bmNsdWRlIHNpdGVzIHRoYXQgaGF2ZSBhIG5lZWQgZm9yIGluc3RhbnRhbmVvdXMgdXBkYXRlcyBv
ZgorZm9yd2FyZGluZywgYW5kIHNpdGVzIHRoYXQgbWF5IGJlbmVmaXQgZnJvbSBoYXZpbmcgbWFp
bCBleGNoYW5nZXJzCityZWZlcmVuY2UgYSBuZXR3b3JrZWQgZGF0YWJhc2UsIHBvc3NpYmx5IHdv
cmtpbmcgaW4gY29uanVuY3Rpb24gd2l0aCBhCitjdXN0b21lciBkYXRhYmFzZSBvZiBzb3J0cy4K
KworT25jZSBwb3N0Zml4IGlzIGJ1aWx0IHdpdGggbXlzcWwgc3VwcG9ydCwgeW91IGNhbiBzcGVj
aWZ5IGEgbWFwIHR5cGUKK2luIG1haW4uY2YgbGlrZSB0aGlzOgorCithbGlhc19tYXBzID0gcGdz
cWw6L2V0Yy9wb3N0Zml4L3Bnc3FsLWFsaWFzZXMuY2YKKworVGhlIGZpbGUgL2V0Yy9wb3N0Zml4
L3Bnc3FsLWFsaWFzZXMuY2Ygc3BlY2lmaWVzIGxvdHMgb2YgaW5mb3JtYXRpb24KK3RlbGxpbmcg
cG9zdGZpeCBob3cgdG8gcmVmZXJlbmNlIHRoZSBwZ3NxbCBkYXRhYmFzZS4gIEFuIGV4YW1wbGUg
cGdzcWwgCittYXAgY29uZmlnIGZpbGUgZm9sbG93czoKKworIworIyBwZ3NxbCBjb25maWcgZmls
ZSBmb3IgYWxpYXMgbG9va3VwcyBvbiBwb3N0Zml4CisjIGNvbW1lbnRzIGFyZSBvay4KKyMKKwor
IyB0aGUgdXNlciBuYW1lIGFuZCBwYXNzd29yZCB0byBsb2cgaW50byB0aGUgbXlzcWwgc2VydmVy
Cit1c2VyID0gc29tZW9uZQorcGFzc3dvcmQgPSBzb21lX3Bhc3N3b3JkIAorCisjIHRoZSBkYXRh
YmFzZSBuYW1lIG9uIHRoZSBzZXJ2ZXJzCitkYm5hbWUgPSBjdXN0b21lcl9kYXRhYmFzZQorCisj
IHRoZSB0YWJsZSBuYW1lCit0YWJsZSA9IG14YWxpYXNlcworCisjCitzZWxlY3RfZmllbGQgPSBm
b3J3X2FkZHIKK3doZXJlX2ZpZWxkID0gYWxpYXMKKworIyB5b3UgbWF5IHNwZWNpZnkgYWRkaXRp
b25hbF9jb25kaXRpb25zIGhlcmUKK2FkZGl0aW9uYWxfY29uZGl0aW9ucyA9IGFuZCBzdGF0dXMg
PSAncGFpZCcKKworIyB0aGUgYWJvdmUgdmFyaWFibGVzIHdpbGwgcmVzdWx0IGluIGEgcXVlcnkg
b2YKKyMgdGhlIGZvcm06IAorIyBzZWxlY3QgZm9yd19hZGRyIGZyb20gbXhhbGlhc2VzIHdoZXJl
IGFsaWFzID0gJyRsb29rdXAnIGFuZCBzdGF0dXMgPSAncGFpZCcKKyMgKCRsb29rdXAgaXMgZXNj
YXBlZCBzbyBpZiBpdCBjb250YWlucyBzaW5nbGUgcXVvdGVzIG9yIG90aGVyIG9kZAorIyBjaGFy
YWN0ZXJzLCBpdCB3aWxsIG5vdCBjYXVzZSBhIHBhcnNlIGVycm9yIGluIHRoZSBzcWwpLgorIwor
IyB0aGUgaG9zdHMgdGhhdCBwb3N0Zml4IHdpbGwgdHJ5IHRvIGNvbm5lY3QgdG8KKyMgYW5kIHF1
ZXJ5IGZyb20gKGluIHRoZSBvcmRlciBsaXN0ZWQpCisjIHNwZWNpZnkgdW5peDogZm9yIHVuaXgt
ZG9tYWluIHNvY2tldHMsIGluZXQ6IGZvciBUQ1AgY29ubmVjdGlvbnMgKGRlZmF1bHQpCitob3N0
cyA9IGhvc3QxLnNvbWUuZG9tYWluIGhvc3QyLnNvbWUuZG9tYWluIHVuaXg6L2ZpbGUvbmFtZQor
CisjIGVuZCBwZ3NxbCBjb25maWcgZmlsZQorCitTb21lIG5vdGVzOgorCitUaGlzIGNvbmZpZ3Vy
YXRpb24gaW50ZXJmYWNlIHNldHVwIGFsbG93cyBmb3IgbXVsdGlwbGUgbXlzcWwKK2RhdGFiYXNl
czogeW91IGNhbiB1c2Ugb25lIGZvciBhIHZpcnR1YWwgdGFibGUsIG9uZSBmb3IgYW4gYWNjZXNz
Cit0YWJsZSwgYW5kIG9uZSBmb3IgYW4gYWxpYXNlcyB0YWJsZSBpZiB5b3Ugd2FudC4KKworU2lu
Y2Ugc2l0ZXMgdGhhdCBoYXZlIGEgbmVlZCBmb3IgbXVsdGlwbGUgbWFpbCBleGNoYW5nZXJzIG1h
eSBlbmpveQordGhlIGNvbnZlbmllbmNlIG9mIHVzaW5nIGEgbmV0d29ya2VkIG1haWxlciBkYXRh
YmFzZSwgYnV0IGRvIG5vdCB3YW50IAordG8gaW50cm9kdWNlIGEgc2luZ2xlIHBvaW50IG9mIGZh
aWx1cmUgdG8gdGhlaXIgc3lzdGVtLCB3ZSd2ZSBpbmNsdWRlZCAKK3RoZSBhYmlsaXR5IHRvIGhh
dmUgcG9zdGZpeCByZWZlcmVuY2UgbXVsdGlwbGUgaG9zdHMgZm9yIGFjY2VzcyB0byBhCitzaW5n
bGUgbXlzcWwgbWFwLiAgVGhpcyB3aWxsIHdvcmsgaWYgc2l0ZXMgc2V0IHVwIG1pcnJvcmVkIG15
c3FsCitkYXRhYmFzZXMgb24gdHdvIG9yIG1vcmUgaG9zdHMuICBXaGVuZXZlciBxdWVyaWVzIGZh
aWwgd2l0aCBhbiBlcnJvcgorYXQgb25lIGhvc3QsIHRoZSByZXN0IG9mIHRoZSBob3N0cyB3aWxs
IGJlIHRyaWVkIGluIG9yZGVyLiAgRWFjaCBob3N0Cit0aGF0IGlzIGluIGFuIGVycm9yIHN0YXRl
IHdpbGwgdW5kZXJnbyBhIHJlY29ubmVjdGlvbiBhdHRlbXB0IGV2ZXJ5IHNvIAorb2Z0ZW4sIGFu
ZCBpZiBubyBteXNxbCBzZXJ2ZXIgaG9zdHMgYXJlIHJlYWNoYWJsZSwgdGhlbiBtYWlsIHdpbGwg
YmUKK2RlZmVycmVkIHVudGlsIGF0IGxlYXN0IG9uZSBvZiB0aG9zZSBob3N0cyBpcyByZWFjaGFi
bGUuCisKK1BlcmZvcm1hbmNlIG9mIHBvc3RmaXggd2l0aCBwZ3NxbCBoYXMgbm90IGJlZW4gdGhv
cm91Z2hseSB0ZXN0ZWQsCitob3dldmVyLCB3ZSBoYXZlIGZvdW5kIGl0IHRvIGJlIHN0YWJsZS4g
IEJ1c3kgbWFpbCBzZXJ2ZXJzIHVzaW5nIHBnc3FsCittYXBzIHdpbGwgZ2VuZXJhdGUgbG90cyBv
ZiBjb25jdXJyZW50IHBnc3FsIGNsaWVudHMsIHNvIHRoZSBwZ3NxbAorc2VydmVyKHMpIHNob3Vs
ZCBiZSBydW4gd2l0aCB0aGlzIGZhY3QgaW4gbWluZC4gIEFueSBmdXJ0aGVyCitwZXJmb3JtYW5j
ZSBpbmZvcm1hdGlvbiwgaW4gYWRkaXRpb24gdG8gYW55IGZlZWRiYWNrIGlzIG1vc3Qgd2VsY29t
ZS4KKwo=

------------751ED1A5320277C1
Content-Type: application/octet-stream; name="snapshot-20011105_quota.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="snapshot-20011105_quota.patch"

ZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvVklS
VFVBTF9SRUFETUUgc25hcHNob3QtMjAwMTExMDUvVklSVFVBTF9SRUFETUUKLS0tIHNuYXBzaG90
LTIwMDExMTA1Lm9yaWcvVklSVFVBTF9SRUFETUUJRnJpIEZlYiAyMyAwMTo1NDoyMSAyMDAxCisr
KyBzbmFwc2hvdC0yMDAxMTEwNS9WSVJUVUFMX1JFQURNRQlUdWUgTm92ICA2IDExOjMyOjA3IDIw
MDEKQEAgLTc1LDYgKzc1LDI0IEBACiAgICAgU3BlY2lmaWVzIGEgbWluaW11bSB1aWQgdGhhdCB3
aWxsIGJlIGFjY2VwdGVkIGFzIGEgcmV0dXJuIGZyb20KICAgICBhIHZpcnR1YWxfdWlkX21hcHMg
bG9va3VwLiBSZXR1cm5lZCB2YWx1ZXMgbGVzcyB0aGFuIHRoaXMgd2lsbAogICAgIGJlIHJlamVj
dGVkLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkZWZlcnJlZC4KKyAgICBOb3RlIHRoYXQgdGhp
cyB2YWx1ZSBpcyBub3QgY2hlY2tlZCB3aGVuIHZpcnR1YWxfc3RhdGljX3VpZGdpZCBpcworICAg
IHNldCB0byBvbi4KKwordmlydHVhbF9zdGF0aWNfdWlkZ2lkCisKKyAgICBXaGVuIHNldCB0byBZ
ZXMsIHRoZSB2aXJ0dWFsX3N0YXRpY191aWQgYW5kIHZpcnR1YWxfc3RhdGljX2dpZCB3aWxsCisg
ICAgYmUgdXNlZCBmb3IgYWxsIHJlY2lwaWVudHMgaW5zdGVhZCBvZiB2aXJ0dWFsX3VpZF9tYXBz
IGFuZCB2aXJ0dWFsX2dpZF9tYXBzLgorICAgIE5vdGUgdGhhdCB2aXJ0dWFsX21pbmltdW1fdWlk
IHdpbGwgbm90IGJlIHVzZWQgYXQgYWxsLgorCit2aXJ0dWFsX3N0YXRpY191aWQKKworICAgIFRo
ZSB1aWQgdG8gdXNlIGZvciB0aGUgcmVjaXBpZW50cyB3aGVuIHZpcnR1YWxfc3RhdGljX3VpZGdp
ZCBpcyBzZXQgdG8KKyAgICB5ZXMuCisKK3ZpcnR1YWxfc3RhdGljX2dpZAorCisgICAgVGhlIGdp
ZCB0byB1c2UgZm9yIHRoZSByZWNpcGllbnRzIHdoZW4gdmlydHVhbF9zdGF0aWNfdWlkZ2lkIGlz
IHNldCB0bworICAgIHllcy4KIAogdmlydHVhbF91aWRfbWFwcwogCkBAIC04NCw2ICsxMDIsMTEg
QEAKICAgICBGb3Igc2VjdXJpdHkgcmVhc29ucywgcmVnZXhwIG1hcHMgYXJlIG5vdCBhbGxvd2Vk
IGhlcmUsIGJlY2F1c2UKICAgICB0aGVpciAkMSBldGMuIHN1YnN0aXR1dGlvbnMgd291bGQgb3Bl
biBhIHNlY3VyaXR5IGhvbGUuCiAKKyAgICBSZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkg
ZnVsbCBhZGRyZXNzICh1c2VyQGRvbWFpbiksCisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJl
Y29tbWVuZGVkIGhvd2V2ZXIpIG9yIGRvbWFpbiBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRo
ZSBsYXR0ZXIgZm9ybWF0IGlzIHZlcnkgdXNlZnVsIGZvciB1c2VyIHBlciB2aXJ0dWFsCisgICAg
ZG9tYWluIGNvbmZpZ3VyYXRpb25zLgorICAgIAogdmlydHVhbF9naWRfbWFwcwogCiAgICAgUmVj
aXBpZW50cyBhcmUgbG9va2VkIHVwIGluIHRoaXMgbWFwIHRvIGRldGVybWluZSB0aGUgR0lEIChn
cm91cApAQCAtOTEsNyArMTE0LDEyIEBACiAKICAgICBGb3Igc2VjdXJpdHkgcmVhc29ucywgcmVn
ZXhwIG1hcHMgYXJlIG5vdCBhbGxvd2VkIGhlcmUsIGJlY2F1c2UKICAgICB0aGVpciAkMSBldGMu
IHN1YnN0aXR1dGlvbnMgd291bGQgb3BlbiBhIHNlY3VyaXR5IGhvbGUuCi0KKyAgICAKKyAgICBS
ZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkgZnVsbCBhZGRyZXNzICh1c2VyQGRvbWFpbiks
CisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJlY29tbWVuZGVkIGhvd2V2ZXIpIG9yIGRvbWFp
biBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRoZSBsYXR0ZXIgZm9ybWF0IGlzIHZlcnkgdXNl
ZnVsIGZvciBncm91cCBwZXIgdmlydHVhbAorICAgIGRvbWFpbiBjb25maWd1cmF0aW9ucy4KKyAg
ICAKIHZpcnR1YWxfbWFpbGJveF9sb2NrCiAKICAgICBUaGlzIHNldHRpbmcgaXMgaWdub3JlZCBp
biBjYXNlIG9mIG1haWxkaXIgZGVsaXZlcnkuCkBAIC0xMDIsMTMgKzEzMCw1NSBAQAogICAgIHJl
cXVpcmVzIHRoYXQgdGhlIHJlY2lwaWVudCBVSUQgb3IgR0lEIGhhcyB3cml0ZSBhY2Nlc3MgdG8g
dGhlCiAgICAgcGFyZW50IGRpcmVjdG9yeSBvZiB0aGUgbWFpbGJveCBmaWxlLgogCi0gICAgVXNl
IHRoZSAicG9zdGNvbmYgLW0iIGNvbW1hbmQgdG8gZmluZCBvdXQgd2hhdCBsb2NraW5nIG1ldGhv
ZHMKKyAgICBVc2UgdGhlICJwb3N0Y29uZiAtbCIgY29tbWFuZCB0byBmaW5kIG91dCB3aGF0IGxv
Y2tpbmcgbWV0aG9kcwogICAgIFBvc3RmaXggc3VwcG9ydHMgb24geW91ciBzeXN0ZW0uCiAKIHZp
cnR1YWxfbWFpbGJveF9zaXplCiAKLSAgICBBbiB1cHBlciBsaW1pdCBvbiB0aGUgc2l6ZSBvZiBh
IG1haWxib3ggb3IgbWFpbGRpciBmaWxlLgorICAgIEFuIHVwcGVyIGxpbWl0IG9uIHRoZSBzaXpl
IG9mIGEgbWFpbGJveCBvciBtYWlsZGlyIGZpbGUgaW4gYnl0ZXMuCisKK3ZpcnR1YWxfbWFpbGJv
eF9saW1pdF9tYXBzCisKKyAgICBSZWNpcGllbnRzIGFyZSBsb29rZWQgdXAgaW4gdGhpcyBtYXAg
dG8gZGV0ZXJtaW5lIHRoZSB1cHBlciBsaW1pdAorICAgIG9uIHRoZSBzaXplIG9mIGEgbWFpbGJv
eCBmaWxlIG9yIGEgbWFpbGRpciBkaXJlY3RvcnkgKGFuZCBzdWJkaXJlY3RvcmllcykKKyAgICBp
biBieXRlcy4KKyAgICAKKyAgICBSZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkgZnVsbCBh
ZGRyZXNzICh1c2VyQGRvbWFpbiksCisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJlY29tbWVu
ZGVkIGhvd2V2ZXIpIG9yIGRvbWFpbiBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRoZSBsYXR0
ZXIgZm9ybWF0IGlzIHZlcnkgdXNlZnVsIGZvciBvbmUgbGltaXQgcGVyCisgICAgdmlydHVhbCBk
b21haW4gY29uZmlndXJhdGlvbnMuCisKK3ZpcnR1YWxfbWFpbGRpcl9saW1pdF9tZXNzYWdlCisK
KyAgICBFcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBNYWlsYm94L01haWxkaXIgbGltaXQg
aGFzIGJlZW4gcmVhY2hlZC4KKyAgICBUaGUgbWVzc2FnZSBzaXplIGlzIGxpbWl0ZWQgdG8gODAg
Y2hhcmFjdGVycy4KKyAgICAoTk9URTogb25seSB1c2VkIG9uIE1haWxkaXIgZGVsaXZlcnkgZm9y
IG5vdykuCisKK3ZpcnR1YWxfbWFpbGJveF9saW1pdF9pbmJveAorCisgICAgQm9vbGVhbiBhbmQg
Y2hlY2tlZCBvbmx5IHdoZW4gTWFpbGRpciBkZWxpdmVyeSBpcyB1c2VkLiBJZiBzZXQgdG8KKyAg
ICB5ZXMgKGRlZmF1bHQgbm8pLCBvbmx5IElOQk9YIGlzIGNoZWNrZWQgbm90IGFsbCBzdWJmb2xk
ZXJzIHRoYXQgaGFzIGJlZW4KKyAgICBjcmVhdGVkIGJ5IElNQVAgYWNjZXNzIHRvIE1haWxkaXIu
CisgICAgSWYgdmlydHVhbF9tYWlsZGlyX2V4dGVuZGVkIGlzIHNldCwgdGhlbiB0aGUgZGlza3F1
b3RhIGNhbGN1bGF0aW9uIHdpbGwKKyAgICBiZSBjb21wdXRlZCB1c2luZyBNYWlsZGlyKysgZmls
YW5hbWUgaW5zdGVhZCBvZiB1c2luZyBzdGF0KCkuCisKK3ZpcnR1YWxfbWFpbGJveF9saW1pdF9v
dmVycmlkZQorCisgICAgQm9vbGVhbi4gSWYgc2V0IHRoaXMgd2lsbCBvdmVycmlkZSBtZXNzYWdl
X3NpemVfbGltaXQgZXZlbiBpZiB0aGUKKyAgICB2aXJ0dWFsX21haWxib3hfbGltaXRfc2l6ZSB2
YWx1ZSBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIG1hcHMKKyAgICB2aXJ0dWFsX21haWxi
b3hfbGltaXRfbWFwcyBpcyBzbWFsbGVyIHRoYW4gbWVzc2FnZV9zaXplX2xpbWl0LgorCit2aXJ0
dWFsX21haWxkaXJfZXh0ZW5kZWQKKworICAgIEJvb2xlYW4gYW5kIHVzZWQgb25seSBvbiBNYWls
ZGlyIGRlbGl2ZXJ5LiBJZiBzZXQgdG8geWVzIChkZWZhdWx0IG5vKSwgCisgICAgdGhlbiB0aGUg
c2l6ZSBvZiB0aGUgbWFpbCB3aWxsIGJlIGFwcGVuZWQgdG8gdGhlIGZpbGVuYW1lIHRvIGZvbGxv
dyB0aGUKKyAgICBzcGVjaWZpY2F0aW9uIG9mIE1haWxkaXIrKyAodXNlZCB3aXRoIGNvdXJpZXIt
aW1hcCBzb2Z0cXVvdGEgb3B0aW9ucykuCisKK3ZpcnR1YWxfbWFpbGRpcl9zdWZmaXgKIAorICAg
IFN0cmluZyB0byBhZGQgdG8gZXhpc3RpbmcgTWFpbGRpciBQYXRoLiBNdXN0IGhhdmUgYSAiLyIg
dHJhaWxsZXIgdG8KKyAgICBoYXZlIGEgZGlyZWN0b3J5IG1ha2VkLgorCQkgICAgCiBFeGFtcGxl
IDE6IHVzaW5nIHRoZSB2aXJ0dWFsIGRlbGl2ZXJ5IGFnZW50IGZvciBhbGwgbG9jYWwgbWFpbAog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIApkaWZmIC11IC0tbmV3LWZpbGUgLS1yZWN1cnNpdmUgc25hcHNob3QtMjAwMTExMDUu
b3JpZy9zcmMvZ2xvYmFsL21haWxfcGFyYW1zLmggc25hcHNob3QtMjAwMTExMDUvc3JjL2dsb2Jh
bC9tYWlsX3BhcmFtcy5oCi0tLSBzbmFwc2hvdC0yMDAxMTEwNS5vcmlnL3NyYy9nbG9iYWwvbWFp
bF9wYXJhbXMuaAlTYXQgT2N0IDEzIDAyOjU1OjM4IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1
L3NyYy9nbG9iYWwvbWFpbF9wYXJhbXMuaAlUdWUgTm92ICA2IDExOjMyOjA3IDIwMDEKQEAgLTEy
NDQsNiArMTI0NCwxOCBAQAogI2RlZmluZSBERUZfVklSVF9NQUlMQk9YX01BUFMJCSIiCiBleHRl
cm4gY2hhciAqdmFyX3ZpcnRfbWFpbGJveF9tYXBzOwogCisjZGVmaW5lIFZBUl9WSVJUX1NUQVRJ
Q19VSURHSUQJCSJ2aXJ0dWFsX3N0YXRpY191aWRnaWQiCisjZGVmaW5lIERFRl9WSVJUX1NUQVRJ
Q19VSURHSUQJCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X3N0YXRpY191aWRnaWQ7CisKKyNkZWZp
bmUgVkFSX1ZJUlRfU1RBVElDX1VJRAkJInZpcnR1YWxfc3RhdGljX3VpZCIKKyNkZWZpbmUgREVG
X1ZJUlRfU1RBVElDX1VJRAkJMTAwCitleHRlcm4gaW50IHZhcl92aXJ0X3N0YXRpY191aWQ7CisK
KyNkZWZpbmUgVkFSX1ZJUlRfU1RBVElDX0dJRAkJInZpcnR1YWxfc3RhdGljX2dpZCIKKyNkZWZp
bmUgREVGX1ZJUlRfU1RBVElDX0dJRAkJMTAwCitleHRlcm4gaW50IHZhcl92aXJ0X3N0YXRpY19n
aWQ7CisKICNkZWZpbmUgVkFSX1ZJUlRfVUlEX01BUFMJCSJ2aXJ0dWFsX3VpZF9tYXBzIgogI2Rl
ZmluZSBERUZfVklSVF9VSURfTUFQUwkJIiIKIGV4dGVybiBjaGFyICp2YXJfdmlydF91aWRfbWFw
czsKQEAgLTEyNTEsNiArMTI2MywzMCBAQAogI2RlZmluZSBWQVJfVklSVF9HSURfTUFQUwkJInZp
cnR1YWxfZ2lkX21hcHMiCiAjZGVmaW5lIERFRl9WSVJUX0dJRF9NQVBTCQkiIgogZXh0ZXJuIGNo
YXIgKnZhcl92aXJ0X2dpZF9tYXBzOworCisjZGVmaW5lIFZBUl9WSVJUX01BSUxCT1hfTElNSVRf
TUFQUwkidmlydHVhbF9tYWlsYm94X2xpbWl0X21hcHMiCisjZGVmaW5lIERFRl9WSVJUX01BSUxC
T1hfTElNSVRfTUFQUwkiIgorZXh0ZXJuIGNoYXIgKnZhcl92aXJ0X21haWxib3hfbGltaXRfbWFw
czsKKworI2RlZmluZSBWQVJfVklSVF9NQUlMRElSX0xJTUlUX01FU1NBR0UJInZpcnR1YWxfbWFp
bGRpcl9saW1pdF9tZXNzYWdlIgorI2RlZmluZSBERUZfVklSVF9NQUlMRElSX0xJTUlUX01FU1NB
R0UJIlNvcnJ5LCB0aGUgdXNlcidzIG1haWxkaXIgaGFzIG92ZXJkcmF3biBoaXMgZGlza3NwYWNl
IHF1b3RhLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLiIKK2V4dGVybiBjaGFyICp2YXJfdmlydF9t
YWlsZGlyX2xpbWl0X21lc3NhZ2U7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9J
TkJPWAkidmlydHVhbF9tYWlsYm94X2xpbWl0X2luYm94IgorI2RlZmluZSBERUZfVklSVF9NQUlM
Qk9YX0xJTUlUX0lOQk9YCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X21haWxib3hfbGltaXRfaW5i
b3g7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9PVkVSUklERQkidmlydHVhbF9t
YWlsYm94X2xpbWl0X292ZXJyaWRlIgorI2RlZmluZSBERUZfVklSVF9NQUlMQk9YX0xJTUlUX09W
RVJSSURFCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGU7CisK
KyNkZWZpbmUgVkFSX1ZJUlRfTUFJTERJUl9FWFRFTkRFRAkidmlydHVhbF9tYWlsZGlyX2V4dGVu
ZGVkIgorI2RlZmluZQlERUZfVklSVF9NQUlMRElSX0VYVEVOREVECTAKK2V4dGVybiBib29sIHZh
cl92aXJ0X21haWxkaXJfZXh0ZW5kZWQ7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTERJUl9TVUZG
SVgJCSJ2aXJ0dWFsX21haWxkaXJfc3VmZml4IgorI2RlZmluZSBERUZfVklSVF9NQUlMRElSX1NV
RkZJWAkJIiIKK2V4dGVybiBjaGFyICp2YXJfdmlydF9tYWlsZGlyX3N1ZmZpeDsKIAogI2RlZmlu
ZSBWQVJfVklSVF9NSU5VSUQJCQkidmlydHVhbF9taW5pbXVtX3VpZCIKICNkZWZpbmUgREVGX1ZJ
UlRfTUlOVUlECQkJMTAwCmRpZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFwc2hvdC0y
MDAxMTEwNS5vcmlnL3NyYy92aXJ0dWFsL21haWxib3guYyBzbmFwc2hvdC0yMDAxMTEwNS9zcmMv
dmlydHVhbC9tYWlsYm94LmMKLS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwv
bWFpbGJveC5jCVR1ZSBNYXIgMjcgMjM6NTI6MDEgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDUv
c3JjL3ZpcnR1YWwvbWFpbGJveC5jCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAtNTYsNiAr
NTYsNyBAQAogLyogR2xvYmFsIGxpYnJhcnkuICovCiAKICNpbmNsdWRlIDxtYWlsX2NvcHkuaD4K
KyNpbmNsdWRlIDxtYWlsX2FkZHJfZmluZC5oPgogI2luY2x1ZGUgPG1ib3hfb3Blbi5oPgogI2lu
Y2x1ZGUgPGRlZmVyLmg+CiAjaW5jbHVkZSA8c2VudC5oPgpAQCAtNzIsNiArNzMsNDAgQEAKICNk
ZWZpbmUgWUVTCTEKICNkZWZpbmUgTk8JMAogCisvKiBjaGFuZ2VfbWFpbGJveF9saW1pdCAtIGNo
YW5nZSBsaW1pdCBmb3IgbWFpbGJveCBmaWxlICovCisKK3N0YXRpYyBpbnQgY2hhbmdlX21haWxi
b3hfbGltaXQoTE9DQUxfU1RBVEUgc3RhdGUsIFVTRVJfQVRUUiB1c3JfYXR0cikKK3sKKyAgICBj
aGFyICAgKm15bmFtZSA9ICJjaGFuZ2VfbWFpbGJveF9saW1pdCI7CisgICAgY29uc3QgY2hhciAq
bGltaXRfcmVzOworICAgIGxvbmcgICAgbjsKKyAgICBpbnQgICAgIHN0YXR1cyA9IE5POworICAg
IAorICAgIC8qCisgICAgICogTG9vayB1cCB0aGUgbWFpbGJveCBsaW1pdCBzaXplLiBGYWxsIGJh
Y2sgdG8gdmlydHVhbF9tYWlsYm94X2xpbWl0IGluCisgICAgICogY2FzZSBsaW1pdCBpcyBzbWFs
bGVyIHRoYW4gbWVzc2FnZV9zaXplX2xpbWl0LgorICAgICAqLworICAgIGlmIChsaW1pdF9yZXMg
PSBtYWlsX2FkZHJfZmluZCh2aXJ0dWFsX21haWxib3hfbGltaXRfbWFwcywKKwkJCQkgICBzdGF0
ZS5tc2dfYXR0ci51c2VyLCAoY2hhciAqKikgMCkpIHsKKwluID0gYXRvbChsaW1pdF9yZXMpOwor
CWlmICgobiA+IDApICYmIChuIDwgdmFyX21lc3NhZ2VfbGltaXQpICYmICghdmFyX3ZpcnRfbWFp
bGJveF9saW1pdF9vdmVycmlkZSkpIHsKKwkgICAgbXNnX3dhcm4oInJlY2lwaWVudCAlczogbWFp
bGJveCBsaW1pdCBpcyBzbWFsbGVyIHRoYW4gJXMgIgorCQkgICAgICJpbiAlcyAtIGZhbGxpbmcg
YmFjayB0byAlcyIsCisJCSAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgVkFSX01FU1NBR0VfTElN
SVQsCisJCSAgICAgdmlydHVhbF9tYWlsYm94X2xpbWl0X21hcHMtPnRpdGxlLAorCQkgICAgIFZB
Ul9WSVJUX01BSUxCT1hfTElNSVQpOworCX0gZWxzZSB7CisJICAgIHNldF9maWxlX2xpbWl0KG4p
OworCSAgICBzdGF0dXMgPSBZRVM7CisJICAgIGlmIChtc2dfdmVyYm9zZSkKKwkgICAgICAgIG1z
Z19pbmZvKCIlc1slZF06IHNldCBtYXhpbXVtIG1haWxib3ggc2l6ZSAlcyB0byAlbGQiLAorCQkJ
IG15bmFtZSwgc3RhdGUubGV2ZWwsIHVzcl9hdHRyLm1haWxib3gsIG4pOworCX0KKyAgICB9CisK
KyAgICByZXR1cm4gKHN0YXR1cyk7Cit9CisKIC8qIGRlbGl2ZXJfbWFpbGJveF9maWxlIC0gZGVs
aXZlciB0byByZWNpcGllbnQgbWFpbGJveCAqLwogCiBzdGF0aWMgaW50IGRlbGl2ZXJfbWFpbGJv
eF9maWxlKExPQ0FMX1NUQVRFIHN0YXRlLCBVU0VSX0FUVFIgdXNyX2F0dHIpCkBAIC0xODQsNDIg
KzIxOSw0OSBAQAogCQkJCSAgIG1haWxib3hfcmVzLCAoY2hhciAqKSAwKTsKIAogI2RlZmluZSBS
RVRVUk4ocmVzKSB7IG15ZnJlZSh1c3JfYXR0ci5tYWlsYm94KTsgcmV0dXJuIChyZXMpOyB9Ci0K
LSAgICAvKgotICAgICAqIExvb2sgdXAgdGhlIG1haWxib3ggb3duZXIgcmlnaHRzLiBEZWZlciBp
biBjYXNlIG9mIHRyb3VibGUuCi0gICAgICovCi0gICAgaWYgKCh1aWRfcmVzID0gbWFwc19maW5k
KHZpcnR1YWxfdWlkX21hcHMsIHN0YXRlLm1zZ19hdHRyLnVzZXIsCi0JCQkgICAgIERJQ1RfRkxB
R19GSVhFRCkpID09IDApIHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19L
RUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogdWlk
IG5vdCBmb3VuZCBpbiAlcyIsCi0JCQkgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFs
X3VpZF9tYXBzLT50aXRsZSk7Ci0JUkVUVVJOKFlFUyk7Ci0gICAgfQotICAgIGlmICgobiA9IGF0
b2wodWlkX3JlcykpIDwgdmFyX3ZpcnRfbWluaW11bV91aWQpIHsKLQkqc3RhdHVzcCA9IGRlZmVy
X2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCi0J
CQkJInJlY2lwaWVudCAlczogYmFkIHVpZCAlcyBpbiAlcyIsCi0JCSAgICAgc3RhdGUubXNnX2F0
dHIudXNlciwgdWlkX3JlcywgdmlydHVhbF91aWRfbWFwcy0+dGl0bGUpOwotCVJFVFVSTihZRVMp
OwotICAgIH0KLSAgICB1c3JfYXR0ci51aWQgPSAodWlkX3QpIG47Ci0KLSAgICAvKgotICAgICAq
IExvb2sgdXAgdGhlIG1haWxib3ggZ3JvdXAgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3Vi
bGUuCi0gICAgICovCi0gICAgaWYgKChnaWRfcmVzID0gbWFwc19maW5kKHZpcnR1YWxfZ2lkX21h
cHMsIHN0YXRlLm1zZ19hdHRyLnVzZXIsCi0JCQkgICAgIERJQ1RfRkxBR19GSVhFRCkpID09IDAp
IHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRU
UihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogZ2lkIG5vdCBmb3VuZCBpbiAl
cyIsCi0JCQkgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFsX2dpZF9tYXBzLT50aXRs
ZSk7Ci0JUkVUVVJOKFlFUyk7Ci0gICAgfQotICAgIGlmICgobiA9IGF0b2woZ2lkX3JlcykpIDw9
IDApIHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0Vf
QVRUUihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogYmFkIGdpZCAlcyBpbiAl
cyIsCi0JCSAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgZ2lkX3JlcywgdmlydHVhbF9naWRfbWFw
cy0+dGl0bGUpOwotCVJFVFVSTihZRVMpOworICAgIGlmKHZhcl92aXJ0X3N0YXRpY191aWRnaWQp
IHsKKyAgICAgICAvKgorCSogU3RhdGljIHVzZWQgaGVyZQorCSovCisgICAgICAgdXNyX2F0dHIu
dWlkID0gdmFyX3ZpcnRfc3RhdGljX3VpZDsKKyAgICAgICB1c3JfYXR0ci5naWQgPSB2YXJfdmly
dF9zdGF0aWNfZ2lkOwkgICAgCisgICAgfSBlbHNlIHsKKyAgICAgICAvKgorICAgICAgICAqIExv
b2sgdXAgdGhlIG1haWxib3ggb3duZXIgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3VibGUu
CisgICAgICAgICovCisgICAgICAgaWYgKCh1aWRfcmVzID0gbWFpbF9hZGRyX2ZpbmQodmlydHVh
bF91aWRfbWFwcywgc3RhdGUubXNnX2F0dHIudXNlciwKKyAJCQkJICAgICAoY2hhciAqKikgMCkp
ID09IDApIHsKKwkgICAqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBC
T1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCisJCQkJICAgInJlY2lwaWVudCAlczogdWlkIG5v
dCBmb3VuZCBpbiAlcyIsCisJCQkgICAgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFs
X3VpZF9tYXBzLT50aXRsZSk7CisJICAgUkVUVVJOKFlFUyk7CisgICAgICAgfQorICAgICAgIGlm
ICgobiA9IGF0b2wodWlkX3JlcykpIDwgdmFyX3ZpcnRfbWluaW11bV91aWQpIHsKKwkgICAqc3Rh
dHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5t
c2dfYXR0ciksCisJCQkJICAgInJlY2lwaWVudCAlczogYmFkIHVpZCAlcyBpbiAlcyIsCisJCSAg
ICAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgdWlkX3JlcywgdmlydHVhbF91aWRfbWFwcy0+dGl0
bGUpOworCSAgIFJFVFVSTihZRVMpOworICAgICAgIH0KKyAgICAgICB1c3JfYXR0ci51aWQgPSAo
dWlkX3QpIG47CisKKyAgICAgICAvKgorICAgICAgICAqIExvb2sgdXAgdGhlIG1haWxib3ggZ3Jv
dXAgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3VibGUuCisgICAgICAgICovCisgICAgICAg
aWYgKChnaWRfcmVzID0gbWFpbF9hZGRyX2ZpbmQodmlydHVhbF9naWRfbWFwcywgc3RhdGUubXNn
X2F0dHIudXNlciwKKwkJCQkgICAgIChjaGFyICoqKSAwKSkgPT0gMCkgeworCSAgICpzdGF0dXNw
ID0gZGVmZXJfYXBwZW5kKEJPVU5DRV9GTEFHX0tFRVAsIEJPVU5DRV9BVFRSKHN0YXRlLm1zZ19h
dHRyKSwKKwkJCQkgICAicmVjaXBpZW50ICVzOiBnaWQgbm90IGZvdW5kIGluICVzIiwKKwkJCSAg
ICAgICAgIHN0YXRlLm1zZ19hdHRyLnVzZXIsIHZpcnR1YWxfZ2lkX21hcHMtPnRpdGxlKTsKKwkg
ICBSRVRVUk4oWUVTKTsKKyAgICAgICB9CisgICAgICAgaWYgKChuID0gYXRvbChnaWRfcmVzKSkg
PD0gMCkgeworCSAgICpzdGF0dXNwID0gZGVmZXJfYXBwZW5kKEJPVU5DRV9GTEFHX0tFRVAsIEJP
VU5DRV9BVFRSKHN0YXRlLm1zZ19hdHRyKSwKKwkJCQkgICAicmVjaXBpZW50ICVzOiBiYWQgZ2lk
ICVzIGluICVzIiwKKwkJICAgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCBnaWRfcmVzLCB2aXJ0
dWFsX2dpZF9tYXBzLT50aXRsZSk7CisJICAgUkVUVVJOKFlFUyk7CisgICAgICAgfQorICAgICAg
IHVzcl9hdHRyLmdpZCA9IChnaWRfdCkgbjsKICAgICB9Ci0gICAgdXNyX2F0dHIuZ2lkID0gKGdp
ZF90KSBuOwogCiAgICAgaWYgKG1zZ192ZXJib3NlKQogCW1zZ19pbmZvKCIlc1slZF06IHNldCB1
c2VyX2F0dHI6ICVzLCB1aWQgPSAlZCwgZ2lkID0gJWQiLApAQCAtMjMzLDkgKzI3NSwxNSBAQAog
CiAgICAgaWYgKExBU1RfQ0hBUih1c3JfYXR0ci5tYWlsYm94KSA9PSAnLycpCiAJKnN0YXR1c3Ag
PSBkZWxpdmVyX21haWxkaXIoc3RhdGUsIHVzcl9hdHRyKTsKLSAgICBlbHNlCisgICAgZWxzZSB7
CisJaW50IGNoYW5nZWRfbGltaXQ7CisJCisJY2hhbmdlZF9saW1pdCA9IGNoYW5nZV9tYWlsYm94
X2xpbWl0KHN0YXRlLCB1c3JfYXR0cik7CiAJKnN0YXR1c3AgPSBkZWxpdmVyX21haWxib3hfZmls
ZShzdGF0ZSwgdXNyX2F0dHIpOwotCisJaWYgKGNoYW5nZWRfbGltaXQpCisJICAgIHNldF9maWxl
X2xpbWl0KHZhcl92aXJ0X21haWxib3hfbGltaXQpOworICAgIH0KKyAgICAKICAgICAvKgogICAg
ICAqIENsZWFudXAuCiAgICAgICovCmRpZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFw
c2hvdC0yMDAxMTEwNS5vcmlnL3NyYy92aXJ0dWFsL21haWxkaXIuYyBzbmFwc2hvdC0yMDAxMTEw
NS9zcmMvdmlydHVhbC9tYWlsZGlyLmMKLS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3Zp
cnR1YWwvbWFpbGRpci5jCVN1biBKYW4gMjggMjI6NDQ6MjQgMjAwMQorKysgc25hcHNob3QtMjAw
MTExMDUvc3JjL3ZpcnR1YWwvbWFpbGRpci5jCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAt
MzYsNiArMzYsMTEgQEAKIAogI2luY2x1ZGUgInN5c19kZWZzLmgiCiAjaW5jbHVkZSA8ZXJybm8u
aD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4JLyogb3BlbmRpcigzKSwgc3RhdCgyKSAqLworI2lu
Y2x1ZGUgPHN5cy9zdGF0Lmg+CS8qIHN0YXQoMikgKi8KKyNpbmNsdWRlIDxkaXJlbnQuaD4JLyog
b3BlbmRpcigzKSAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgkvKiBzdGF0KDIpICovCisjaW5jbHVk
ZSA8c3RkbGliLmg+CS8qIGF0b2woMykgKi8KIAogI2lmbmRlZiBFRFFVT1QKICNkZWZpbmUgRURR
VU9UIEVGQklHCkBAIC01Niw2ICs2MSw3IEBACiAvKiBHbG9iYWwgbGlicmFyeS4gKi8KIAogI2lu
Y2x1ZGUgPG1haWxfY29weS5oPgorI2luY2x1ZGUgPG1haWxfYWRkcl9maW5kLmg+CiAjaW5jbHVk
ZSA8Ym91bmNlLmg+CiAjaW5jbHVkZSA8ZGVmZXIuaD4KICNpbmNsdWRlIDxzZW50Lmg+CkBAIC02
NSw2ICs3MSwxMjUgQEAKIAogI2luY2x1ZGUgInZpcnR1YWwuaCIKIAorLyoKKyAqIEdpdmVzIHRo
ZSBzaXplIG9mIHRoZSBmaWxlIGFjY29yZGluZyBvZiB0aGUgTWFpbGRpcisrIGV4dGVuc2lvbnMK
KyAqIChjb2RlIHRha2VuIGZyb20gY291cmllci1pbWFwKS4KKyAqCisgKiBBcmd1bWVudHMgOgor
ICogIG4gOiBmaWxlbmFtZQorICogIAorICogUmV0dXJuIHRoZSBzaXplIGdpdmVuIGluICIsUz1z
aXplIiBpbiB0aGUgZmlsZW5hbWUsCisgKiAgICB6ZXJvIGlmIGl0IGNhbm5vdCBmaW5kICIsUz1z
aXplIiBpbiB0aGUgZmlsZW5hbWUuLi4KKyAqCisgKi8KK3N0YXRpYyBsb25nIG1haWxkaXJfcGFy
c2VxdW90YShjb25zdCBjaGFyICpuKQoreworY29uc3QgY2hhciAqbzsKK2ludAl5ZXM7Citsb25n
CXM7CisKKwlpZiAoKG89c3RycmNocihuLCAnLycpKSA9PSAwKQlvPW47CisKKwlmb3IgKDsgKm87
IG8rKykKKwkJaWYgKCpvID09ICc6JykJYnJlYWs7CisJeWVzPTA7CisJZm9yICggOyBvID49IG47
IC0tbykKKwl7CisJCWlmICgqbyA9PSAnLycpCWJyZWFrOworCisJCWlmICgqbyA9PSAnLCcgJiYg
b1sxXSA9PSAnUycgJiYgb1syXSA9PSAnPScpCisJCXsKKwkJCXllcz0xOworCQkJbyArPSAzOwor
CQkJYnJlYWs7CisJCX0KKwl9CisJaWYgKHllcykKKwl7CisJCXM9MDsKKwkJd2hpbGUgKCpvID49
ICcwJyAmJiAqbyA8PSAnOScpCisJCQlzPSBzKjEwICsgKCpvKysgLSAnMCcpOworCQlyZXR1cm4g
czsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDaGVja3MgZGlyZWN0b3J5IGZpbGVzIGZv
ciBxdW90YSAodGFrZW4gZnJvbSBleGltKQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGlmIHF1b3RhIGlzIHNldCBmb3IgYSB2aXJ0dWFsIE1haWxkaXIgYm94LgorICogSXQgc2NhbnMg
dGhlIGRpcmVjdG9yeSBhbmQgc3RhdHMgYWxsIHRoZSBmaWxlcyBpbiBvcmRlciB0byBnZXQgYSB0
b3RhbAorICogc2l6ZSBhbmQgY291bnQuIFRoaXMgaXMgYW4gZXhwZW5zaXZlIHRoaW5nIHRvIGRv
LiBCdXQgaW4gdGhpcyB3YXkgbm8KKyAqIHdyaXRlIGFjY2VzcyBpcyBuZWVkZWQgaW4gYSBzaW5n
bGUgZmlsZSB0aGF0IGNhbiBiZSBlcmFzZWQgb3IgbWV0bGVkCisgKiBiZWNhdXNlIGEgbG9jayBw
cm9ibGVtLgorICoKKyAqIEFyZ3VtZW50cyA6CisgKiAgZGlybmFtZSA6IHRoZSBuYW1lIG9mIHRo
ZSBkaXJlY3RvcnkKKyAqICBjb3VudHB0cjogd2hlcmUgdG8gYWRkIHRoZSBmaWxlIGNvdW50IChi
ZWNhdXNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMpCisgKiAgbWFpbHBsdXM6IGlzIGNoZWNrIHdp
bGwgbG9vayBhdCBNYWlsZGlyKysgZnVuY3Rpb25hbGl0eSBpZiBjb25maWd1cmVkCisgKgorICog
UmV0dXJucyB0aGUgc3VtIG9mIHRoZSBzaXplcyBvZiBzdGF0dGFibGUgZmlsZXMKKyAqICAgIHpl
cm8gaWYgdGhlIGRpcmVjdG9yeSBjYW5ub3QgYmUgb3BlbmVkLgorICovCitzdGF0aWMgbG9uZyBj
aGVja19kaXJfc2l6ZShjaGFyICpkaXJuYW1lLCBsb25nICpjb3VudHB0ciwgYm9vbCBtYWlscGx1
cykgCit7CisgICBESVIgICAgKmRpcjsKKyAgIGxvbmcgICBjb3VudCA9ICpjb3VudHB0cjsKKyAg
IGxvbmcgICBzdW0gPSAwOworICAgc3RydWN0IGRpcmVudCAqZW50OworICAgc3RydWN0IHN0YXQg
ICBzdGF0YnVmOworCisgICBkaXIgPSBvcGVuZGlyKGRpcm5hbWUpOworICAgaWYgKGRpciA9PSBO
VUxMKSB7CisgICAgIGlmIChtYWtlX2RpcnMoZGlybmFtZSwwNzAwKSA9PSAwKSB7CS8qIFRyeSB0
byBjcmVhdGUgZGlycyAqLworICAgICAgIGRpciA9IG9wZW5kaXIoZGlybmFtZSk7CQkJLyogUmVv
cGVuIHRoZSBkaXIgKi8KKyAgICAgICBpZiAoZGlyID09IE5VTEwpIHsKKwkgIG1zZ193YXJuKCJj
aGVja19kaXJfc2l6ZTogY2Fubm90IG9wZW4gZGlyZWN0b3J5IDogJXMsIHRyeSB0d2ljZSIsIGRp
cm5hbWUpOworCSAgcmV0dXJuIDA7CisgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgIG1z
Z193YXJuKCJjaGVja19kaXJfc2l6ZTogY2Fubm90IG9wZW4gZGlyZWN0b3J5IDogJXMiLCBkaXJu
YW1lKTsKKyAgICAgICByZXR1cm4gMDsKKyAgICAgfQorICAgfQorCisgICB3aGlsZSAoKGVudCA9
IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgeworICAgICBjaGFyICpuYW1lID0gZW50LT5kX25hbWU7
CisgICAgIFZTVFJJTkcgKmJ1ZmZlcjsKKworICAgICBpZihzdHJjbXAobmFtZSwgIi4iKSA9PSAw
IHx8IHN0cmNtcChuYW1lLCAiLi4iKSA9PSAwKSBjb250aW51ZTsKKyAgICAgY291bnQrKzsKKyAg
IAorICAgICBpZiAodmFyX3ZpcnRfbWFpbGRpcl9leHRlbmRlZCAmJiBtYWlscGx1cykgeworICAg
ICAgIC8qCisgICAgICAgICogVXNpbmcgTWFpbGRpcisrIHNpemUgY29tcHV0YXRpb24gYW5kIGNo
ZWNrIG9ubHkgdGhlIAorICAgICAgICAqIGRpcmVjdG9yeSB3ZSd2ZSBoYXMgYmVlbiBhc2tlZCB0
bworICAgICAgICAqLworICAgICAgIHN1bSArPSBtYWlsZGlyX3BhcnNlcXVvdGEobmFtZSk7CisK
KyAgICAgfSBlbHNlIHsKKworICAgICAgIGJ1ZmZlciA9IHZzdHJpbmdfYWxsb2MoMTAyNCk7Cisg
ICAgCisgICAgICAgdnN0cmluZ19zcHJpbnRmKGJ1ZmZlciwiJXMvJXMiLGRpcm5hbWUsbmFtZSk7
CisgICAgICAgaWYgKHN0YXQodnN0cmluZ19zdHIoYnVmZmVyKSwgJnN0YXRidWYpIDwgMCkgewor
CSAgdnN0cmluZ19mcmVlKGJ1ZmZlcik7CisJICBjb250aW51ZTsKKyAgICAgICB9CisgICAgICAg
aWYgKChzdGF0YnVmLnN0X21vZGUgJiBTX0lGUkVHKSAhPSAwKQorCSAgc3VtICs9IHN0YXRidWYu
c3Rfc2l6ZTsKKyAgICAgICBlbHNlIGlmICgoc3RhdGJ1Zi5zdF9tb2RlICYgU19JRkRJUikgIT0g
MCkKKwkgICAgICAgc3VtICs9IGNoZWNrX2Rpcl9zaXplKHZzdHJpbmdfc3RyKGJ1ZmZlciksICZj
b3VudCwgbWFpbHBsdXMpOworICAgICAgIHZzdHJpbmdfZnJlZShidWZmZXIpOworICAgICB9Cisg
ICB9CisgICBjbG9zZWRpcihkaXIpOworICAgaWYgKG1zZ192ZXJib3NlKQorICAgICAgbXNnX2lu
Zm8oImNoZWNrX2Rpcl9zaXplOiBkaXI9JXMgc3VtPSVsZCBjb3VudD0lbGQiLCBkaXJuYW1lLCBz
dW0sIGNvdW50KTsKKyAgICpjb3VudHB0ciA9IGNvdW50OworICAgcmV0dXJuIHN1bTsKK30KKwkK
IC8qIGRlbGl2ZXJfbWFpbGRpciAtIGRlbGl2ZXJ5IHRvIG1haWxkaXItc3R5bGUgbWFpbGJveCAq
LwogCiBpbnQgICAgIGRlbGl2ZXJfbWFpbGRpcihMT0NBTF9TVEFURSBzdGF0ZSwgVVNFUl9BVFRS
IHVzcl9hdHRyKQpAQCAtODEsNiArMjA2LDEyIEBACiAgICAgaW50ICAgICBzdGF0dXM7CiAgICAg
aW50ICAgICBjb3B5X2ZsYWdzOwogICAgIHN0YXRpYyBpbnQgY291bnQ7CisgICAgLyogTWFpbGRp
ciBRdW90YSAqLworICAgIGNvbnN0IGNoYXIgKmxpbWl0X3JlczsJLyogTGltaXQgZnJvbSBtYXAg
Ki8KKyAgICBsb25nICAgIG47CQkJLyogTGltaXQgaW4gaW50ZWdlciBmb3JtYXQgKi8KKyAgICBs
b25nICAgIGN1cl9xdW90YTsJCS8qIEN1cnJlbnQgcXVvdGEgKi8KKyAgICBsb25nICAgIHNhdmVk
X3NpemU7CQkvKiBUaGUgcXVvdGEgb2YgdGhlIE1haWxkaXIgYXQgYWxsICovCisgICAgc3RydWN0
IHN0YXQgc3RhdGJ1ZjsJLyogVG8gY2hlY2sgdGhlIHNpemUgb2YgdGhlIG1haWwgd3JpdHRlbiAq
LwogCiAgICAgLyoKICAgICAgKiBNYWtlIHZlcmJvc2UgbG9nZ2luZyBlYXNpZXIgdG8gdW5kZXJz
dGFuZC4KQEAgLTEwMiwxMSArMjMzLDc5IEBACiAKICAgICBjb3B5X2ZsYWdzID0gTUFJTF9DT1BZ
X1RPRklMRSB8IE1BSUxfQ09QWV9SRVRVUk5fUEFUSCB8IE1BSUxfQ09QWV9ERUxJVkVSRUQ7CiAK
LSAgICBuZXdkaXIgPSBjb25jYXRlbmF0ZSh1c3JfYXR0ci5tYWlsYm94LCAibmV3LyIsIChjaGFy
ICopIDApOwotICAgIHRtcGRpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gsICJ0bXAv
IiwgKGNoYXIgKikgMCk7Ci0gICAgY3VyZGlyID0gY29uY2F0ZW5hdGUodXNyX2F0dHIubWFpbGJv
eCwgImN1ci8iLCAoY2hhciAqKSAwKTsKKyAgICAvKgorICAgICAqIENvbmNhdCB0aGUgbWFpbGRp
ciBzdWZmaXggaWYgaXQgaXMgc2V0LgorICAgICAqLworICAgIGlmICgqdmFyX3ZpcnRfbWFpbGRp
cl9zdWZmaXggPT0gMCkgeworCW5ld2RpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gs
ICJuZXcvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIHRtcGRpciA9IGNvbmNhdGVuYXRlKHVzcl9h
dHRyLm1haWxib3gsICJ0bXAvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIGN1cmRpciA9IGNvbmNh
dGVuYXRlKHVzcl9hdHRyLm1haWxib3gsICJjdXIvIiwgKGNoYXIgKikgMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbmV3ZGlyID0gY29uY2F0ZW5hdGUodXNyX2F0dHIubWFpbGJveCwgdmFyX3Zp
cnRfbWFpbGRpcl9zdWZmaXgsIChjaGFyICopIDApOworICAgICAgICB0bXBkaXIgPSBjb25jYXRl
bmF0ZSh1c3JfYXR0ci5tYWlsYm94LCB2YXJfdmlydF9tYWlsZGlyX3N1ZmZpeCwgKGNoYXIgKikg
MCk7CisgICAgICAgIGN1cmRpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gsIHZhcl92
aXJ0X21haWxkaXJfc3VmZml4LCAoY2hhciAqKSAwKTsKKyAgICAgICAgbmV3ZGlyID0gY29uY2F0
ZW5hdGUobmV3ZGlyLCAibmV3LyIsIChjaGFyICopIDApOworICAgICAgICB0bXBkaXIgPSBjb25j
YXRlbmF0ZSh0bXBkaXIsICJ0bXAvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIGN1cmRpciA9IGNv
bmNhdGVuYXRlKGN1cmRpciwgImN1ci8iLCAoY2hhciAqKSAwKTsKKyAgICB9CiAKICAgICAvKgor
ICAgICAqIEZpbmQgdGhlIE1haWxkaXIgbGltaXQgaW4gdGhlIG1hcHMuIEZhbGwgYmFjayB2aXJ0
dWFsX21haWxib3hfbGltaXQgaW4KKyAgICAgKiBjYXNlIGxpbWl0IGlzIHNtYWxsZXIgdGhhbiBt
ZXNzYWdlX3NpemVfbGltaXQuCisgICAgICovCisgICAgaWYgKGxpbWl0X3JlcyA9IG1haWxfYWRk
cl9maW5kKHZpcnR1YWxfbWFpbGJveF9saW1pdF9tYXBzLAorCQkJICAgICAgICAgIHN0YXRlLm1z
Z19hdHRyLnVzZXIsIChjaGFyICoqKSAwKSkgeworICAgICAgIG4gPSBhdG9sKGxpbWl0X3Jlcyk7
CisgICAgICAgaWYoIXZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGUpIHsKKyAgICAgICAg
aWYgKChuID4gMCkgJiYgKG4gPCB2YXJfbWVzc2FnZV9saW1pdCkpIHsKKyAgICAgICAgICAgIG1z
Z193YXJuKCIoMilyZWNpcGllbnQgJXM6IG1haWxkaXIgbGltaXQgaXMgc21hbGxlciB0aGVuICVz
ICIKKwkgICAgICAgICAgICAgImluICVzIC0gZmFsbGluZyBiYWNrIHRvICVzLiIsCisJCSAgICAg
c3RhdGUubXNnX2F0dHIudXNlciwgVkFSX01FU1NBR0VfTElNSVQsCisJCSAgICAgdmlydHVhbF9t
YWlsYm94X2xpbWl0X21hcHMtPnRpdGxlLAorCQkgICAgIFZBUl9WSVJUX01BSUxCT1hfTElNSVQp
OworICAgICAgICB9IGVsc2UgeworCSAgICBpZiAobXNnX3ZlcmJvc2UpCisJICAgICAgICBtc2df
aW5mbygiJXNbJWRdOiBzZXQgbWF4aW11bSBtYWlsYm94IHNpemUgJXMgdG8gJWxkLiIsCisJCQkg
bXluYW1lLCBzdGF0ZS5sZXZlbCwgdXNyX2F0dHIubWFpbGJveCxuKTsKKyAgICAgICAgfQorICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgIC8qCisJKiBUaGVyZSBpcyBubyBsaW1pdCB0aGVy
ZS4uLiB0aGVuIHNldCBuIHRvIDAKKwkqLworICAgICAgIG4gPSAwOworICAgIH0KKyAgICAKKyAg
ICAvKgorICAgICAqIENoZWNraW5nIHF1b3RhIGJlZm9yZSBkZWxpdmVyaW5nIHRoZSBtYWlsCisg
ICAgICovCisgICAgY3VyX3F1b3RhID0gMDsJLyogc2FuaXR5ICovCisgICAgc2F2ZWRfc2l6ZSA9
IDA7CS8qIHNhbml0eSAqLworICAgIGlmICggbiAhPSAwICkgeworICAgICAgICAgICAgc2V0X2V1
Z2lkKHVzcl9hdHRyLnVpZCwgdXNyX2F0dHIuZ2lkKTsKKwkgICAgaWYgKHZhcl92aXJ0X21haWxi
b3hfbGltaXRfaW5ib3gpIHsKKwkJICAgIC8qCisJCSAgICAgKiBDaGVjayBvbmx5IGluYm94CisJ
CSAgICAgKi8KKwkJICAgIHNhdmVkX3NpemUgPSBjaGVja19kaXJfc2l6ZShuZXdkaXIsICZjdXJf
cXVvdGEsIDEpOworCQkgICAgY3VyX3F1b3RhID0gMDsKKwkJICAgIHNhdmVkX3NpemUgKz0gY2hl
Y2tfZGlyX3NpemUoY3VyZGlyLCAmY3VyX3F1b3RhLCAxKTsKKwkJICAgIGN1cl9xdW90YSA9IDA7
CisJCSAgICAvKiBDaGVja2VkIHdpdGhvdXQgTWFpbGRpcisrIGZpbGUgZm9ybWF0ICovCisJCSAg
ICBzYXZlZF9zaXplICs9IGNoZWNrX2Rpcl9zaXplKHRtcGRpciwgJmN1cl9xdW90YSwgMCk7CisJ
ICAgIH0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgICogQ2hlY2sgYWxsIGJveGVzLiAKKwkJICAg
ICAqIFRoaXMgd2lsbCB1c2VyICJvbGQiIHN0YXQoKSBjYWxsIGluc3RlYWQgb2YgZmFzdAorCQkg
ICAgICogTWFpbGRpcisrIHN1cHBvcnQgYmVjYXVzZSB3ZSBjYW5ub3QgYWZmb3JkIHRoZQorCQkg
ICAgICogdGltZSB0byB0ZXN0IGFsbCBmaWxlbmFtZSB0eXBlcy4uLgorCQkgICAgICovCisJCSAg
ICBzYXZlZF9zaXplID0gY2hlY2tfZGlyX3NpemUodXNyX2F0dHIubWFpbGJveCwgJmN1cl9xdW90
YSwgMCk7CisJICAgIH0KKyAgICAgICAgICAgIHNldF9ldWdpZCh2YXJfb3duZXJfdWlkLCB2YXJf
b3duZXJfZ2lkKTsKKyAgICB9CisgICAgCisgICAgLyoKICAgICAgKiBDcmVhdGUgYW5kIHdyaXRl
IHRoZSBmaWxlIGFzIHRoZSByZWNpcGllbnQsIHNvIHRoYXQgZmlsZSBxdW90YSB3b3JrLgogICAg
ICAqIENyZWF0ZSBhbnkgbWlzc2luZyBkaXJlY3RvcmllcyBvbiB0aGUgZmx5LiBUaGUgZmlsZSBu
YW1lIGlzIGNob3NlbgogICAgICAqIGFjY29yZGluZyB0byBmdHA6Ly9rb29iZXJhLm1hdGgudWlj
LmVkdS93d3cvcHJvdG8vbWFpbGRpci5odG1sOgpAQCAtMTM0LDE4ICszMzMsNTEgQEAKIAl2c3Ry
aW5nX3NwcmludGYod2h5LCAiY3JlYXRlICVzOiAlbSIsIHRtcGZpbGUpOwogICAgIH0gZWxzZSB7
CiAJaWYgKG1haWxfY29weShDT1BZX0FUVFIoc3RhdGUubXNnX2F0dHIpLCBkc3QsIGNvcHlfZmxh
Z3MsICJcbiIsIHdoeSkgPT0gMCkgewotCSAgICBpZiAoc2FuZV9saW5rKHRtcGZpbGUsIG5ld2Zp
bGUpIDwgMAotCQkmJiAoZXJybm8gIT0gRU5PRU5UCi0JCSAgICB8fCAobWFrZV9kaXJzKGN1cmRp
ciwgMDcwMCksIG1ha2VfZGlycyhuZXdkaXIsIDA3MDApKSA8IDAKLQkJICAgIHx8IHNhbmVfbGlu
ayh0bXBmaWxlLCBuZXdmaWxlKSA8IDApKSB7Ci0JCXZzdHJpbmdfc3ByaW50Zih3aHksICJsaW5r
IHRvICVzOiAlbSIsIG5ld2ZpbGUpOworCSAgICAvKgorCSAgICAgKiBBZGQgYSAiLFM9PHNpemVv
ZmZpbGU+IiB0byB0aGUgZmlsZSBuZXdseSB3cml0dGVuIGFjY29yZGluZyB0bworCSAgICAgKiBN
YWlsZGlyKysgc3BlY2lmaWNhdGlvbnMgOiBodHRwOi8vd3d3LmludGVyNy5jb20vY291cmllcmlt
YXAvUkVBRE1FLm1haWxkaXJxdW90YS5odG1sCisJICAgICAqIFRoaXMgbmVlZHMgYSBzdGF0KDIp
IG9mIHRoZSB0ZW1wZmlsZSBhbmQgbW9kaWZpY2F0aW9uIG9mIHRoZQorCSAgICAgKiBuYW1lIG9m
IHRoZSBmaWxlLgorCSAgICAgKi8KKwkgICAgaWYgKHZhcl92aXJ0X21haWxkaXJfZXh0ZW5kZWQp
IHsKKwkJLyogQ2hlY2sgc2l6ZSBvZiB0aGUgbmV3IG1haWwgY3JlYXRlZCAqLworCQlpZiAoc3Rh
dCh0bXBmaWxlLCAmc3RhdGJ1ZikgPT0gMCkgeworCQkgICAvKiBXZSBjYW4gc3RhdCBpdCB0aGVu
IGFwcGVuZCB0aGUgc2l6ZSBvZiB0aGUgZmlsZSB0byBuZXdmaWxlICovCisJCSAgIHZzdHJpbmdf
c3ByaW50ZihidWYsIixTPSVsZCIsIChsb25nKSBzdGF0YnVmLnN0X3NpemUpOworCQkgICBuZXdm
aWxlID0gY29uY2F0ZW5hdGUobmV3ZmlsZSwgU1RSKGJ1ZiksIChjaGFyICopIDApOworCQkgICBp
ZiAoIG4gIT0gMCApCisJCSAgICAgc2F2ZWRfc2l6ZSArPSAobG9uZykgc3RhdGJ1Zi5zdF9zaXpl
OwkvKiBBZGRpbmcgdG8gdGggY3VycmVudCBxdW90YSAqLworCQl9CisJICAgIH0gZWxzZSB7CisJ
ICAgICAgaWYgKCBuICE9IDAgKSB7CisJCSBpZiAoc3RhdCh0bXBmaWxlLCAmc3RhdGJ1ZikgPT0g
MCkgc2F2ZWRfc2l6ZSArPSAobG9uZykgc3RhdGJ1Zi5zdF9zaXplOworCSAgICAgIH0KKwkgICAg
fQorCSAgICAvKgorCSAgICAgKiBOb3cgd2UgaGF2ZSB0aGUgbWFpbGRpciBzaXplIGluIHNhdmVk
X2ZpbGUsIGNvbXBhcmUgdG8gdGhlIHZhbHVlCisJICAgICAqIGFuZCBldmVudWFseSBpc3N1ZSBh
IG1lc3NhZ2UgdGhhdCB3ZSBvdmVyZHJhd24gdGhlIG1heCBzaXplCisJICAgICAqLworCSAgICBp
ZiAoc2F2ZWRfc2l6ZSA+IG4pIHsKKwkJICAgIHN0YXR1cyA9IDE7CS8qIGJvdW5jZSB0aGUgbWVz
c2FnZSAqLworCQkgICAgdnN0cmluZ19zcHJpbnRmKHdoeSwiJXMiLHZhcl92aXJ0X21haWxkaXJf
bGltaXRfbWVzc2FnZSk7CisJCSAgICBlcnJubyA9IEVGQklHOwogCSAgICB9IGVsc2UgewotCQlz
dGF0dXMgPSAwOworCSAgICAgIC8qIERlbGl2ZXIgdG8gY3VyZGlyICovCisJICAgICAgaWYgKHNh
bmVfbGluayh0bXBmaWxlLCBuZXdmaWxlKSA8IDAKKwkgCSAgJiYgKGVycm5vICE9IEVOT0VOVAor
CQkgICAgICB8fCAobWFrZV9kaXJzKGN1cmRpciwgMDcwMCksIG1ha2VfZGlycyhuZXdkaXIsIDA3
MDApKSA8IDAKKwkJICAgICAgfHwgc2FuZV9saW5rKHRtcGZpbGUsIG5ld2ZpbGUpIDwgMCkpIHsK
KwkJICB2c3RyaW5nX3NwcmludGYod2h5LCAibGluayB0byAlczogJW0iLCBuZXdmaWxlKTsKKwkg
ICAgICB9IGVsc2UgeworCQkgIHN0YXR1cyA9IDA7CisJICAgICAgfQogCSAgICB9CiAJfQogCWlm
ICh1bmxpbmsodG1wZmlsZSkgPCAwKQogCSAgICBtc2dfd2FybigicmVtb3ZlICVzOiAlbSIsIHRt
cGZpbGUpOworCiAgICAgfQorCiAgICAgc2V0X2V1Z2lkKHZhcl9vd25lcl91aWQsIHZhcl9vd25l
cl9naWQpOwogCiAgICAgLyoKZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIHNuYXBzaG90
LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwvdmlydHVhbC5jIHNuYXBzaG90LTIwMDExMTA1L3Ny
Yy92aXJ0dWFsL3ZpcnR1YWwuYwotLS0gc25hcHNob3QtMjAwMTExMDUub3JpZy9zcmMvdmlydHVh
bC92aXJ0dWFsLmMJVHVlIE1hciAyNyAyMzo1MTozOCAyMDAxCisrKyBzbmFwc2hvdC0yMDAxMTEw
NS9zcmMvdmlydHVhbC92aXJ0dWFsLmMJVHVlIE5vdiAgNiAxMTozMjowNyAyMDAxCkBAIC02Myw4
ICs2MywxMCBAQAogLyogLmZpCiAvKglNYWlsYm94IG93bmVyc2hpcCBpcyBjb250cm9sbGVkIGJ5
IHRoZSBcZkJ2aXJ0dWFsX3VpZF9tYXBzXGZSCiAvKglhbmQgXGZCdmlydHVhbF9naWRfbWFwc1xm
UiBsb29rdXAgdGFibGVzLCB3aGljaCBhcmUgaW5kZXhlZAotLyoJd2l0aCB0aGUgZnVsbCByZWNp
cGllbnQgYWRkcmVzcy4gRWFjaCB0YWJsZSBwcm92aWRlcwotLyoJYSBzdHJpbmcgd2l0aCB0aGUg
bnVtZXJpY2FsIHVzZXIgYW5kIGdyb3VwIElELCByZXNwZWN0aXZlbHkuCisvKgl3aXRoIHRoZSBm
dWxsIHJlY2lwaWVudCBhZGRyZXNzIChcZkl1c2VyQGRvbWFpblxmUiksCisvKgl1c2VyIG5hbWUg
KFxmSXVzZXJcZlIpIG9yIGRvbWFpbiBuYW1lIChcZklAZG9tYWluXGZSKS4KKy8qCUVhY2ggdGFi
bGUgcHJvdmlkZXMgYSBzdHJpbmcgd2l0aCB0aGUgbnVtZXJpY2FsIHVzZXIgYW5kIGdyb3VwIElE
LAorLyoJcmVzcGVjdGl2ZWx5LgogLyoKIC8qCVRoZSBcZkJ2aXJ0dWFsX21pbmltdW1fdWlkXGZS
IHBhcmFtZXRlciBpbXBvc2VzIGEgbG93ZXIgYm91bmQgb24KIC8qCW51bWVyaWNhbCB1c2VyIElE
IHZhbHVlcyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gYW55CkBAIC0xMjAsMTIgKzEyMiwyNyBA
QAogLyoJYSBcZkJ2aXJ0dWFsX293bmVyX21hcHNcZlIgb3IgXGZCdmlydHVhbF91aWRfbWFwc1xm
UiBsb29rdXAuCiAvKglSZXR1cm5lZCB2YWx1ZXMgbGVzcyB0aGFuIHRoaXMgd2lsbCBiZSByZWpl
Y3RlZCwgYW5kIHRoZSBtZXNzYWdlCiAvKgl3aWxsIGJlIGRlZmVycmVkLgorLyoJTm90ZSB0aGF0
IHRoaXMgdmFsdWUgaXMgbm90IGNoZWNrZWQgd2hlbiBcZkJ2aXJ0dWFsX3N0YXRpY191aWRnaWZc
ZlIKKy8qCWlzIHNldCB0byBvbi4KKy8qIC5JUCBcZkJ2aXJ0YXVsX3N0YXRpY19naWR1aWRcZlIK
Ky8qCVdoZW4gc2V0IHRvIFxmQnllc1xmUiwgdGhlIFxmQnZpcnR1YWxfc3RhdGljX3VpZFxmUiBh
bmQgCisvKglcZkJ2aXJ0dWFsX3N0YXRpY19naWRcZlIgd2lsbCBiZSB1c2VkIGZvciBhbGwgcmVj
aXBpZW50cyBpbnN0ZWFkIG9mCisvKglcZkJ2aXJ0dWFsX3VpZF9tYXBzXGZSIGFuZCBcZkJ2aXJ0
dWFsX2dpZF9tYXBzXGZCLiBOb3RlIHRoYXQKKy8qCVxmQnZpcnR1YWxfbWluaW11bV91aWRcZlIg
d2lsbCBub3QgYmUgdXNlZCBhdCBhbGwuCisvKiAuSVAgXGZCdmlydHVhbF9zdGF0aWNfdWlkXGZS
CisvKglUaGUgdWlkIHRvIHVzZSBmb3IgdGhlIHJlY2lwaWVudHMgd2hlbiBcZkJ2aXJ0dWFsX3N0
YXRpY191aWRnaWRcZlIgaXMKKy8qCXNldCB0byB5ZXMuCisvKiAuSVAgXGZCdmlydHVhbF9zdGF0
aWNfZ2lkXGZSCisvKglUaGUgZ2lkIHRvIHVzZSBmb3IgdGhlIHJlY2lwaWVudHMgd2hlbiBcZkJ2
aXJ0dWFsX3N0YXRpY191aWRnaWRcZlIgaXMKKy8qCXNldCB0byB5ZXMuCiAvKiAuSVAgIlxmQnZp
cnR1YWxfdWlkX21hcHNcZlIgKHJlZ2V4cCBtYXBzIGRpc2FsbG93ZWQpIgogLyoJUmVjaXBpZW50
cyBhcmUgbG9va2VkIHVwIGluIHRoZXNlIG1hcHMgdG8gZGV0ZXJtaW5lIHRoZSB1c2VyIElEIHRv
IGJlCiAvKgl1c2VkIHdoZW4gd3JpdGluZyB0byB0aGUgdGFyZ2V0IG1haWxib3guCiAvKiAuSVAg
IlxmQnZpcnR1YWxfZ2lkX21hcHNcZlIgKHJlZ2V4cCBtYXBzIGRpc2FsbG93ZWQpIgogLyoJUmVj
aXBpZW50cyBhcmUgbG9va2VkIHVwIGluIHRoZXNlIG1hcHMgdG8gZGV0ZXJtaW5lIHRoZSBncm91
cCBJRCB0byBiZQogLyoJdXNlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHRhcmdldCBtYWlsYm94Lgor
LyogLklQIFxmQnZpcnR1YWxfbWFpbGRpcl9zdWZmaXhcZlIKKy8qICAgICAgU3RyaW5nIHRvIGFk
ZCB0byBleGlzdGluZyBNYWlsZGlyIFBhdGggKGRlZmF1bHQgTWFpbGRpci8pLgogLyogLlNIICJM
b2NraW5nIGNvbnRyb2xzIgogLyogLmFkCiAvKiAuZmkKQEAgLTE2OCw2ICsxODUsMjcgQEAKIC8q
IC5JUCBcZkJ2aXJ0dWFsX21haWxib3hfbGltaXRcZlIKIC8qCVRoZSBtYXhpbWFsIHNpemUgaW4g
Ynl0ZXMgb2YgYSBtYWlsYm94IG9yIG1haWxkaXIgZmlsZS4KIC8qCVNldCB0byB6ZXJvIHRvIGRp
c2FibGUgdGhlIGxpbWl0LgorLyogLklQICJcZkJ2aXJ0dWFsX21haWxib3hfbGltaXRfbWFwc1xm
UiAocmVnZXhwIG1hcHMgZGlzYWxsb3dlZCkiCisvKglSZWNpcGllbnRzIGFyZSBsb29rZWQgdXAg
aW4gdGhlc2UgbWFwcyB0byBkZXRlcm1pbmUgdGhlIG1heGltYWwgc2l6ZQorLyoJaW4gYnl0ZXMg
b2YgdGhlIHRhcmdldCBtYWlsYm94IG9yIG1haWxkaXIuCisvKiAuSVAgXGZCdmlydHVhbF9tYWls
Ym94X2xpbWl0X21lc3NhZ2VcZlIKKy8qICAgICAgRXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdo
ZW4gTWFpbGJveC9NYWlsZGlyIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWQuCisvKglUaGUgbWVzc2Fn
ZSBzaXplIGlzIGxpbWl0ZWQgdG8gODAgY2hhcmFjdGVycy4KKy8qCShOT1RFOiBvbmx5IHVzZWQg
b24gTWFpbGRpciBkZWxpdmVyeSBmb3Igbm93KS4KKy8qIC5JUCBcZkJ2aXJ0dWFsX21haWxib3hf
bGltaXRfaW5ib3hcZlIKKy8qCUJvb2xlYW4gYW5kIGNoZWNrZWQgb25seSB3aGVuIE1haWxkaXIg
ZGVsaXZlcnkgaXMgdXNlZC4gSWYgc2V0IHRvIAorLyoJeWVzIChkZWZhdWx0IG5vKSwgb25seSBJ
TkJPWCBpcyBjaGVja2VkIG5vdCBhbGwgc3ViZm9sZGVycyB0aGF0IGhhcworLyoJY3JlYXRlZCBi
eSBJTUFQIGFjY2VzcyB0byBNYWlsZGlyLm8KKy8qIC5JUCBcZkJ2aXJ0dWFsX21haWxib2NfbGlt
aXRfb3ZlcnJpZGVcZlIKKy8qICAgICAgQm9vbGVhbi4gSWYgc2VyIHRoaXMgd2lsbCBvdmVycmlk
ZSBcZkJtZXNzYWdlX3NpemVfbGltaXRcZlIgZXZlbiBpZgorLyoJdGhlIFxmQnZpcnR1YWxfbWFp
bGJveF9saW1pdFxmUiB2YWx1ZSBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gYnkKKy8qCXRoZSBtYXAg
XGZCdmlydHVhbF9tYWlsYm94XGxpbWl0X21hcHNcZlIgaXMgc21hbGxlciB0aGFuIAorLyoJXGZC
bWVzc2FnZV9zaXplX2xpbWl0XGZSLgorLyogLklQIFxmQnZpcnR1YWxfbWFpbGRpcl9leHRlbmRl
ZFxmUgorLyoJQm9vbGVhbiBhbmQgdXNlZCBvbmx5IG9uIE1haWxkaXIgZGVsaXZlcnkuIElmIHNl
dCB0byB5ZXMgKGRlZmF1bHQKKy8qCW5vKSwgdGhlbiB0aGUgc2l6ZSBvZiB0aGUgbWFpbCB3aWxs
IGJlIGFwcGVuZWQgdG8gdGhlIGZpbGVuYW1lIHRvCisvKglmb2xsb3cgdGhlIHNwZWNpZmljYXRp
b24gb2YgTWFpbGRpcisrICh1c2VkIHdpdGggY291cmllci1pbWFwCisvKglzb2Z0cXVvdGEgb3B0
aW9ucykuCiAvKiBISVNUT1JZCiAvKiAuYWQKIC8qIC5maQpAQCAtMjQwLDEwICsyNzgsMTkgQEAK
IGNoYXIgICAqdmFyX3ZpcnRfbWFpbGJveF9tYXBzOwogY2hhciAgICp2YXJfdmlydF91aWRfbWFw
czsKIGNoYXIgICAqdmFyX3ZpcnRfZ2lkX21hcHM7CitjaGFyICAgKnZhcl92aXJ0X21haWxib3hf
bGltaXRfbWFwczsKIGludCAgICAgdmFyX3ZpcnRfbWluaW11bV91aWQ7CiBjaGFyICAgKnZhcl92
aXJ0X21haWxib3hfYmFzZTsKIGNoYXIgICAqdmFyX3ZpcnRfbWFpbGJveF9sb2NrOwogaW50ICAg
ICB2YXJfdmlydF9tYWlsYm94X2xpbWl0OworYm9vbAl2YXJfdmlydF9zdGF0aWNfdWlkZ2lkOwor
aW50CXZhcl92aXJ0X3N0YXRpY191aWQ7CitpbnQJdmFyX3ZpcnRfc3RhdGljX2dpZDsKK2NoYXIg
ICAqdmFyX3ZpcnRfbWFpbGRpcl9saW1pdF9tZXNzYWdlOworYm9vbAl2YXJfdmlydF9tYWlsYm94
X2xpbWl0X2luYm94OworYm9vbAl2YXJfdmlydF9tYWlsYm94X2xpbWl0X292ZXJyaWRlOworYm9v
bAl2YXJfdmlydF9tYWlsZGlyX2V4dGVuZGVkOworY2hhciAgICp2YXJfdmlydF9tYWlsZGlyX3N1
ZmZpeDsKIAogIC8qCiAgICogTWFwcGluZ3MuCkBAIC0yNTEsNiArMjk4LDcgQEAKIE1BUFMgICAq
dmlydHVhbF9tYWlsYm94X21hcHM7CiBNQVBTICAgKnZpcnR1YWxfdWlkX21hcHM7CiBNQVBTICAg
KnZpcnR1YWxfZ2lkX21hcHM7CitNQVBTICAgKnZpcnR1YWxfbWFpbGJveF9saW1pdF9tYXBzOwog
CiAgLyoKICAgKiBCaXQgbWFza3MuCkBAIC0zNTksNiArNDA3LDkgQEAKIAogICAgIHZpcnR1YWxf
Z2lkX21hcHMgPQogCW1hcHNfY3JlYXRlKFZBUl9WSVJUX0dJRF9NQVBTLCB2YXJfdmlydF9naWRf
bWFwcywgRElDVF9GTEFHX0xPQ0spOworICAgIAorICAgIHZpcnR1YWxfbWFpbGJveF9saW1pdF9t
YXBzID0KKwltYXBzX2NyZWF0ZShWQVJfVklSVF9NQUlMQk9YX0xJTUlUX01BUFMsIHZhcl92aXJ0
X21haWxib3hfbGltaXRfbWFwcywgRElDVF9GTEFHX0xPQ0spOwogCiAgICAgdmlydHVhbF9tYm94
X2xvY2tfbWFzayA9IG1ib3hfbG9ja19tYXNrKHZhcl92aXJ0X21haWxib3hfbG9jayk7CiB9CkBA
IC0zOTEsMTQgKzQ0MiwyNiBAQAogICAgIHN0YXRpYyBDT05GSUdfSU5UX1RBQkxFIGludF90YWJs
ZVtdID0gewogCVZBUl9WSVJUX01JTlVJRCwgREVGX1ZJUlRfTUlOVUlELCAmdmFyX3ZpcnRfbWlu
aW11bV91aWQsIDEsIDAsCiAJVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVCwgREVGX1ZJUlRfTUFJTEJP
WF9MSU1JVCwgJnZhcl92aXJ0X21haWxib3hfbGltaXQsIDAsIDAsCisJVkFSX1ZJUlRfU1RBVElD
X1VJRCwgREVGX1ZJUlRfU1RBVElDX1VJRCwgJnZhcl92aXJ0X3N0YXRpY191aWQsIDAsIDAsCisJ
VkFSX1ZJUlRfU1RBVElDX0dJRCwgREVGX1ZJUlRfU1RBVElDX0dJRCwgJnZhcl92aXJ0X3N0YXRp
Y19naWQsIDAsIDAsCisJMCwKKyAgICB9OworICAgIHN0YXRpYyBDT05GSUdfQk9PTF9UQUJMRSBi
b29sX3RhYmxlW10gPSB7CisJVkFSX1ZJUlRfU1RBVElDX1VJREdJRCwgREVGX1ZJUlRfU1RBVElD
X1VJREdJRCwgJnZhcl92aXJ0X3N0YXRpY191aWRnaWQsCisJVkFSX1ZJUlRfTUFJTEJPWF9MSU1J
VF9JTkJPWCwgREVGX1ZJUlRfTUFJTEJPWF9MSU1JVF9JTkJPWCwgJnZhcl92aXJ0X21haWxib3hf
bGltaXRfaW5ib3gsCisJVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9PVkVSUklERSwgREVGX1ZJUlRf
TUFJTEJPWF9MSU1JVF9PVkVSUklERSwgJnZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGUs
CisJVkFSX1ZJUlRfTUFJTERJUl9FWFRFTkRFRCwgREVGX1ZJUlRfTUFJTERJUl9FWFRFTkRFRCwg
JnZhcl92aXJ0X21haWxkaXJfZXh0ZW5kZWQsCiAJMCwKICAgICB9OwogICAgIHN0YXRpYyBDT05G
SUdfU1RSX1RBQkxFIHN0cl90YWJsZVtdID0gewogCVZBUl9WSVJUX01BSUxCT1hfTUFQUywgREVG
X1ZJUlRfTUFJTEJPWF9NQVBTLCAmdmFyX3ZpcnRfbWFpbGJveF9tYXBzLCAwLCAwLAogCVZBUl9W
SVJUX1VJRF9NQVBTLCBERUZfVklSVF9VSURfTUFQUywgJnZhcl92aXJ0X3VpZF9tYXBzLCAwLCAw
LAogCVZBUl9WSVJUX0dJRF9NQVBTLCBERUZfVklSVF9HSURfTUFQUywgJnZhcl92aXJ0X2dpZF9t
YXBzLCAwLCAwLAorCVZBUl9WSVJUX01BSUxCT1hfTElNSVRfTUFQUywgREVGX1ZJUlRfTUFJTEJP
WF9MSU1JVF9NQVBTLCAmdmFyX3ZpcnRfbWFpbGJveF9saW1pdF9tYXBzLCAwLCAwLAogCVZBUl9W
SVJUX01BSUxCT1hfQkFTRSwgREVGX1ZJUlRfTUFJTEJPWF9CQVNFLCAmdmFyX3ZpcnRfbWFpbGJv
eF9iYXNlLCAwLCAwLAogCVZBUl9WSVJUX01BSUxCT1hfTE9DSywgREVGX1ZJUlRfTUFJTEJPWF9M
T0NLLCAmdmFyX3ZpcnRfbWFpbGJveF9sb2NrLCAxLCAwLAorCVZBUl9WSVJUX01BSUxESVJfTElN
SVRfTUVTU0FHRSwgREVGX1ZJUlRfTUFJTERJUl9MSU1JVF9NRVNTQUdFLCAmdmFyX3ZpcnRfbWFp
bGRpcl9saW1pdF9tZXNzYWdlLCAxLCAwLAorCVZBUl9WSVJUX01BSUxESVJfU1VGRklYLCBERUZf
VklSVF9NQUlMRElSX1NVRkZJWCwgJnZhcl92aXJ0X21haWxkaXJfc3VmZml4LCAwLCAwLAogCTAs
CiAgICAgfTsKIApAQCAtNDA4LDUgKzQ3MSw2IEBACiAJCSAgICAgICBNQUlMX1NFUlZFUl9QUkVf
SU5JVCwgcHJlX2luaXQsCiAJCSAgICAgICBNQUlMX1NFUlZFUl9QT1NUX0lOSVQsIHBvc3RfaW5p
dCwKIAkJICAgICAgIE1BSUxfU0VSVkVSX1BSRV9BQ0NFUFQsIHByZV9hY2NlcHQsCisJCSAgICAg
ICBNQUlMX1NFUlZFUl9CT09MX1RBQkxFLCBib29sX3RhYmxlLAogCQkgICAgICAgMCk7CiB9CmRp
ZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFwc2hvdC0yMDAxMTEwNS5vcmlnL3NyYy92
aXJ0dWFsL3ZpcnR1YWwuaCBzbmFwc2hvdC0yMDAxMTEwNS9zcmMvdmlydHVhbC92aXJ0dWFsLmgK
LS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwvdmlydHVhbC5oCUZyaSBEZWMg
MjIgMDI6MDQ6NTggMjAwMAorKysgc25hcHNob3QtMjAwMTExMDUvc3JjL3ZpcnR1YWwvdmlydHVh
bC5oCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAtMzIsNiArMzIsNyBAQAogZXh0ZXJuIE1B
UFMgKnZpcnR1YWxfbWFpbGJveF9tYXBzOwogZXh0ZXJuIE1BUFMgKnZpcnR1YWxfdWlkX21hcHM7
CiBleHRlcm4gTUFQUyAqdmlydHVhbF9naWRfbWFwczsKK2V4dGVybiBNQVBTICp2aXJ0dWFsX21h
aWxib3hfbGltaXRfbWFwczsKIAogIC8qCiAgICogVXNlciBhdHRyaWJ1dGVzOiB0aGVzZSBjb250
cm9sIHRoZSBwcml2aWxlZ2VzIGZvciBkZWxpdmVyeSB0byBleHRlcm5hbAo=

------------751ED1A5320277C1--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?22498429954.20011114141214>