com gtk/php-gtk: Module isn't registered, so this has no way to work at present. (config.m4 probably needs updating when it does work, there've been some function changes since 2.4): ext/libglade/config.w32 ext/libglade/libglade.defs ext/libglade/libglade.overrides ext/libglade/php_libglade.c ext/libglade/php_libglade .h ext/libglade/v1.libglade.overrides

[email protected] (David Soria Parra) Wed, 21 Sep 2005 15:15:29 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
--7eef5a31e7171ef5a7ea1492194209e7e669b4c1
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Commit:    4646cdba60f0665d574ad15a1ad2f668544f5a13=0AAuthor:    Steph Fox =
<[email protected]>         Wed, 21 Sep 2005 15:15:29 +0000=0AParents:   82c7b86=
2cbc62e27ac696c3dfc1634adb19eb9e0=0ABranches:  master=0A=0ALink:       http=
://git.php.net/?p=3Dgtk/php-gtk.git;a=3Dcommitdiff;h=3D4646cdba60f0665d574a=
d15a1ad2f668544f5a13=0A=0ALog:=0AModule isn't registered, so this has no wa=
y to work at present.=0A(config.m4 probably needs updating when it does wor=
k, there've been some function changes since 2.4)=0A=0AChanged paths:=0A  A=
  ext/libglade/config.w32=0A  M  ext/libglade/libglade.defs=0A  M  ext/libg=
lade/libglade.overrides=0A  M  ext/libglade/php_libglade.c=0A  M  ext/libgl=
ade/php_libglade.h=0A  A  ext/libglade/v1.libglade.overrides=0A=0A
--7eef5a31e7171ef5a7ea1492194209e7e669b4c1
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="diff_4646cdba60f0665d574ad15a1ad2f668544f5a13.txt"

NDY0NmNkYmE2MGYwNjY1ZDU3NGFkMTVhMWFkMmY2Njg1NDRmNWExMwpkaWZmIC0tZ2l0IGEvZXh0
L2xpYmdsYWRlL2NvbmZpZy53MzIgYi9leHQvbGliZ2xhZGUvY29uZmlnLnczMgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2EwYmU0Ci0tLSAvZGV2L251bGwKKysrIGIvZXh0
L2xpYmdsYWRlL2NvbmZpZy53MzIKQEAgLTAsMCArMSwyNiBAQAorCitBUkdfV0lUSCgibGliZ2xh
ZGUiLCAiR2xhZGUgc3VwcG9ydCIsICJubyIpOworCitpZiAoUEhQX0dUS19MSUJHTEFERSAhPSAi
bm8iKSB7CisKKwlpZiAoQ0hFQ0tfSEVBREVSKCJnbGFkZVxcZ2xhZGUuaCIpICYmIENIRUNLX0xJ
QigiZ2xhZGUtMi4wLmxpYiIsICJsaWJnbGFkZSIpKSB7CisKKwkJQUREX0ZMQUcoIkNGTEFHU19M
SUJHTEFERSIsICIvSSBleHRcXGxpYmdsYWRlIC9JIC4uXFxleHRcXGxpYmdsYWRlIC9EIEhBVkVf
TElCR0xBREU9MSIpOworCQlFWFRFTlNJT04oImxpYmdsYWRlIiwgInBocF9saWJnbGFkZS5jIGdl
bl9saWJnbGFkZS5jIiwgdHJ1ZSk7IC8vIGFsd2F5cyBzaGFyZWQKKwkJQUNfREVGSU5FKCJIQVZF
X0xJQkdMQURFIiwgMSwgImxpYmdsYWRlIGVuYWJsZWQiKTsKKworCQlpZiAoRlNPLkZpbGVFeGlz
dHMoIndpbjMyXFx0ZW1wLmJhdCIpKSB7CisKKwkJCXZhciB0ZW1wID0gRlNPLk9wZW5UZXh0Rmls
ZSgid2luMzJcXHRlbXAuYmF0IiwgOCk7CisKKwkJCXRlbXAuV3JpdGVMaW5lKCJwaHAgLXEgZ2Vu
ZXJhdG9yXFxnZW5lcmF0b3IucGhwIC1sIHdpbjMyXFxsb2dzXFxjb25maWdfZ2xhZGUubG9nIC1v
IGV4dFxcbGliZ2xhZGVcXGxpYmdsYWRlLm92ZXJyaWRlcyAtcCBHbGFkZVhNTCBleHRcXGxpYmds
YWRlXFxsaWJnbGFkZS5kZWZzID4gZXh0XFxsaWJnbGFkZVxcZ2VuX2xpYmdsYWRlLmMiKTsKKwor
CQkJdGVtcC5Xcml0ZUxpbmUoJ2dyZXAgLWggIl5QSFBfR1RLX0VYUE9SVF9DRSIgZXh0XFxsaWJn
bGFkZVxcZ2VuX2xpYmdsYWRlLmMgfCBzZWQgLWUgInMvXi9QSFBfR1RLX0FQSSBleHRlcm4gLyIg
PiBleHRcXGxpYmdsYWRlXFxnZW5fbGliZ2xhZGUuaCcpOworCQl9CisKKwl9IGVsc2UgeworCisJ
CVdBUk5JTkcoImxpYmdsYWRlIG5vdCBlbmFibGVkOyBsaWJyYXJpZXMgYW5kIGhlYWRlcnMgbm90
IGZvdW5kIik7CisJfQorCit9CmRpZmYgLS1naXQgYS9leHQvbGliZ2xhZGUvbGliZ2xhZGUuZGVm
cyBiL2V4dC9saWJnbGFkZS9saWJnbGFkZS5kZWZzCmluZGV4IDZkMjcwYWYuLjcxNjc3YzYgMTAw
NjQ0Ci0tLSBhL2V4dC9saWJnbGFkZS9saWJnbGFkZS5kZWZzCisrKyBiL2V4dC9saWJnbGFkZS9s
aWJnbGFkZS5kZWZzCkBAIC0xLDEzOCArMSwxNTIgQEAKIDs7IC0qLSBzY2hlbWUgLSotCiA7IG9i
amVjdCBkZWZpbml0aW9ucyAuLi4KLShvYmplY3QgWE1MCi0gIChpbi1tb2R1bGUgR2xhZGUpCi0g
IChwYXJlbnQgRGF0YSAoR3RrKSkKLSAgKGMtbmFtZSBHbGFkZVhNTCkKLSkKLQotOzsgRW51bWVy
YXRpb25zIGFuZCBmbGFncyAuLi4KLQotCi07OyBGcm9tIC91c3IvaW5jbHVkZS9nbGFkZS9nbGFk
ZS14bWwuaAogCi0oZnVuY3Rpb24gZ2xhZGVfeG1sX2dldF90eXBlCi0gIChjLW5hbWUgZ2xhZGVf
eG1sX2dldF90eXBlKQotICAocmV0dXJuLXR5cGUgR3RrVHlwZSkKKyhkZWZpbmUtb2JqZWN0IFhN
TAorICAoaW4tbW9kdWxlICJHbGFkZSIpCisgIChwYXJlbnQgIkd0a09iamVjdCIpCisgIChjLW5h
bWUgIkdsYWRlWE1MIikKKyAgKGd0eXBlLWlkICJHTEFERV9UWVBFX1hNTCIpCiApCiAKLShmdW5j
dGlvbiBnbGFkZV94bWxfbmV3Ci0gIChjLW5hbWUgZ2xhZGVfeG1sX25ldykKLSAgKHJldHVybi10
eXBlIEdsYWRlWE1MKikKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBm
bmFtZSkpCi0gIChwYXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogcm9vdCkgKG51
bGwtb2spIChkZWZhdWx0ICJOVUxMIikpCi0pCis7OyBGdW5jdGlvbnMsIGNvbnN0cnVjdG9ycywg
YW5kIG1ldGhvZHMgLi4uCiAKLShmdW5jdGlvbiBnbGFkZV94bWxfbmV3X3dpdGhfZG9tYWluCi0g
IChjLW5hbWUgZ2xhZGVfeG1sX25ld193aXRoX2RvbWFpbikKLSAgKGlzLWNvbnN0cnVjdG9yLW9m
IEdsYWRlWE1MKQotICAocmV0dXJuLXR5cGUgR2xhZGVYTUwqKQotICAocGFyYW1ldGVyICh0eXBl
LWFuZC1uYW1lIGNvbnN0LWNoYXIqIGZuYW1lKSkKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFt
ZSBjb25zdC1jaGFyKiByb290KSAobnVsbC1vaykgKGRlZmF1bHQgIk5VTEwiKSkKLSAgKHBhcmFt
ZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBkb21haW4pIChudWxsLW9rKSAoZGVmYXVs
dCAiTlVMTCIpKQorKGRlZmluZS1mdW5jdGlvbiBnbGFkZV94bWxfZ2V0X3R5cGUKKyAgKGMtbmFt
ZSAiZ2xhZGVfeG1sX2dldF90eXBlIikKKyAgKHJldHVybi10eXBlICJHVHlwZSIpCiApCiAKLShm
dW5jdGlvbiB4bWxfbmV3X2Zyb21fbWVtb3J5Ci0gIChjLW5hbWUgZ2xhZGVfeG1sX25ld19mcm9t
X21lbW9yeSkKKyhkZWZpbmUtZnVuY3Rpb24gZ2xhZGVfeG1sX25ldworICAoaXMtY29uc3RydWN0
b3Itb2YgIkdsYWRlWE1MIikKKyAgKGMtbmFtZSAiZ2xhZGVfeG1sX25ldyIpCisgIChjYWxsZXIt
b3ducy1yZXR1cm4gI3QpCiAgIChyZXR1cm4tdHlwZSBHbGFkZVhNTCopCi0gIChwYXJhbWV0ZXIg
KHR5cGUtYW5kLW5hbWUgY2hhciogYnVmZmVyKSkKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFt
ZSBpbnQgc2l6ZSkpCi0gIChwYXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogcm9v
dCkgKG51bGwtb2spKQotICAocGFyYW1ldGVyICh0eXBlLWFuZC1uYW1lIGNvbnN0LWNoYXIqIGRv
bWFpbikgKG51bGwtb2spKQotKQotCi0obWV0aG9kIGNvbnN0cnVjdAotICAob2Ytb2JqZWN0IFhN
TCAoR2xhZGUpKQotICAoYy1uYW1lIGdsYWRlX3htbF9jb25zdHJ1Y3QpCi0gIChyZXR1cm4tdHlw
ZSBnYm9vbGVhbikKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBmbmFt
ZSkpCi0gIChwYXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogcm9vdCkpCi0gIChw
YXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogZG9tYWluKSkKLSkKLQotKG1ldGhv
ZCBzaWduYWxfY29ubmVjdAotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAoYy1uYW1lIGds
YWRlX3htbF9zaWduYWxfY29ubmVjdCkKLSAgKHJldHVybi10eXBlIG5vbmUpCi0gIChwYXJhbWV0
ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogaGFuZGxlcm5hbWUpKQotICAocGFyYW1ldGVy
ICh0eXBlLWFuZC1uYW1lIEd0a1NpZ25hbEZ1bmMgZnVuYykpCi0pCi0KLShtZXRob2Qgc2lnbmFs
X2Nvbm5lY3RfZGF0YQotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAoYy1uYW1lIGdsYWRl
X3htbF9zaWduYWxfY29ubmVjdF9kYXRhKQotICAocmV0dXJuLXR5cGUgbm9uZSkKLSAgKHBhcmFt
ZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBoYW5kbGVybmFtZSkpCi0gIChwYXJhbWV0
ZXIgKHR5cGUtYW5kLW5hbWUgR3RrU2lnbmFsRnVuYyBmdW5jKSkKLSAgKHBhcmFtZXRlciAodHlw
ZS1hbmQtbmFtZSBncG9pbnRlciB1c2VyX2RhdGEpKQotKQotCi0obWV0aG9kIHNpZ25hbF9hdXRv
Y29ubmVjdAotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAoYy1uYW1lIGdsYWRlX3htbF9z
aWduYWxfYXV0b2Nvbm5lY3QpCi0gIChyZXR1cm4tdHlwZSBub25lKQotKQotCi0obWV0aG9kIHNp
Z25hbF9jb25uZWN0X2Z1bGwKLSAgKG9mLW9iamVjdCBYTUwgKEdsYWRlKSkKLSAgKGMtbmFtZSBn
bGFkZV94bWxfc2lnbmFsX2Nvbm5lY3RfZnVsbCkKLSAgKHJldHVybi10eXBlIG5vbmUpCi0gIChw
YXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtZ2NoYXIqIGhhbmRsZXJfbmFtZSkpCi0gIChw
YXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgR2xhZGVYTUxDb25uZWN0RnVuYyBmdW5jKSkKLSAgKHBh
cmFtZXRlciAodHlwZS1hbmQtbmFtZSBncG9pbnRlciB1c2VyX2RhdGEpKQotKQotCi0obWV0aG9k
IHNpZ25hbF9hdXRvY29ubmVjdF9mdWxsCi0gIChvZi1vYmplY3QgWE1MIChHbGFkZSkpCi0gIChj
LW5hbWUgZ2xhZGVfeG1sX3NpZ25hbF9hdXRvY29ubmVjdF9mdWxsKQotICAocmV0dXJuLXR5cGUg
bm9uZSkKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBHbGFkZVhNTENvbm5lY3RGdW5jIGZ1
bmMpKQotICAocGFyYW1ldGVyICh0eXBlLWFuZC1uYW1lIGdwb2ludGVyIHVzZXJfZGF0YSkpCi0p
Ci0KLShtZXRob2QgZ2V0X3dpZGdldAotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAoYy1u
YW1lIGdsYWRlX3htbF9nZXRfd2lkZ2V0KQotICAocmV0dXJuLXR5cGUgR3RrV2lkZ2V0KikKLSAg
KHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBuYW1lKSkKLSkKLQotKG1ldGhv
ZCBnZXRfd2lkZ2V0X3ByZWZpeAotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAoYy1uYW1l
IGdsYWRlX3htbF9nZXRfd2lkZ2V0X3ByZWZpeCkKLSAgKHJldHVybi10eXBlIEdMaXN0KikKLSAg
KHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1jaGFyKiBuYW1lKSkKLSkKLQotKG1ldGhv
ZCBnZXRfd2lkZ2V0X2J5X2xvbmdfbmFtZQotICAob2Ytb2JqZWN0IFhNTCAoR2xhZGUpKQotICAo
Yy1uYW1lIGdsYWRlX3htbF9nZXRfd2lkZ2V0X2J5X2xvbmdfbmFtZSkKLSAgKHJldHVybi10eXBl
IEd0a1dpZGdldCopCi0gIChwYXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUgY29uc3QtY2hhciogbG9u
Z25hbWUpKQotKQotCi0obWV0aG9kIHJlbGF0aXZlX2ZpbGUKLSAgKG9mLW9iamVjdCBYTUwgKEds
YWRlKSkKLSAgKGMtbmFtZSBnbGFkZV94bWxfcmVsYXRpdmVfZmlsZSkKLSAgKHJldHVybi10eXBl
IGdjaGFyKikKLSAgKHBhcmFtZXRlciAodHlwZS1hbmQtbmFtZSBjb25zdC1nY2hhciogZmlsZW5h
bWUpKQotKQotCi0oZnVuY3Rpb24gZ2V0X3dpZGdldF9uYW1lCi0gIChjLW5hbWUgZ2xhZGVfZ2V0
X3dpZGdldF9uYW1lKQotICAocmV0dXJuLXR5cGUgY29uc3QtZ2NoYXIqKQotICAocGFyYW1ldGVy
ICh0eXBlLWFuZC1uYW1lIEd0a1dpZGdldCogd2lkZ2V0KSkKLSkKLQotKGZ1bmN0aW9uIGdldF93
aWRnZXRfbG9uZ19uYW1lCi0gIChjLW5hbWUgZ2xhZGVfZ2V0X3dpZGdldF9sb25nX25hbWUpCi0g
IChyZXR1cm4tdHlwZSBjb25zdC1nY2hhciopCi0gIChwYXJhbWV0ZXIgKHR5cGUtYW5kLW5hbWUg
R3RrV2lkZ2V0KiB3aWRnZXQpKQorICAocGFyYW1ldGVycworICAgICcoImNvbnN0LWNoYXIqIiAi
Zm5hbWUiKQorICAgICcoImNvbnN0LWNoYXIqIiAicm9vdCIpCisgICAgJygiY29uc3QtY2hhcioi
ICJkb21haW4iKQorICApCiApCiAKLShmdW5jdGlvbiBnZXRfd2lkZ2V0X3RyZWUKLSAgKGMtbmFt
ZSBnbGFkZV9nZXRfd2lkZ2V0X3RyZWUpCisoZGVmaW5lLWZ1bmN0aW9uIGdsYWRlX3htbF9uZXdf
ZnJvbV9idWZmZXIKKyAgKGlzLWNvbnN0cnVjdG9yLW9mICJHbGFkZVhNTCIpCisgIChjLW5hbWUg
ImdsYWRlX3htbF9uZXdfZnJvbV9idWZmZXIiKQorICAoY2FsbGVyLW93bnMtcmV0dXJuICN0KQog
ICAocmV0dXJuLXR5cGUgR2xhZGVYTUwqKQotICAocGFyYW1ldGVyICh0eXBlLWFuZC1uYW1lIEd0
a1dpZGdldCogd2lkZ2V0KSkKKyAgKHBhcmFtZXRlcnMKKyAgICAnKCJjb25zdC1jaGFyKiIgImJ1
ZmZlciIpCisgICAgJygiaW50IiAic2l6ZSIpCisgICAgJygiY29uc3QtY2hhcioiICJyb290IikK
KyAgICAnKCJjb25zdC1jaGFyKiIgImRvbWFpbiIpCisgICkKKykKKworKGRlZmluZS1tZXRob2Qg
Y29uc3RydWN0CisgIChvZi1vYmplY3QgIkdsYWRlWE1MIikKKyAgKGMtbmFtZSAiZ2xhZGVfeG1s
X2NvbnN0cnVjdCIpCisgIChyZXR1cm4tdHlwZSAiZ2Jvb2xlYW4iKQorICAocGFyYW1ldGVycwor
ICAgICcoImNvbnN0LWNoYXIqIiAiZm5hbWUiKQorICAgICcoImNvbnN0LWNoYXIqIiAicm9vdCIp
CisgICAgJygiY29uc3QtY2hhcioiICJkb21haW4iKQorICApCispCisKKyhkZWZpbmUtbWV0aG9k
IHNpZ25hbF9jb25uZWN0CisgIChvZi1vYmplY3QgIkdsYWRlWE1MIikKKyAgKGMtbmFtZSAiZ2xh
ZGVfeG1sX3NpZ25hbF9jb25uZWN0IikKKyAgKHJldHVybi10eXBlICJub25lIikKKyAgKHBhcmFt
ZXRlcnMKKyAgICAnKCJjb25zdC1jaGFyKiIgImhhbmRsZXJuYW1lIikKKyAgICAnKCJHQ2FsbGJh
Y2siICJmdW5jIikKKyAgKQorKQorCisoZGVmaW5lLW1ldGhvZCBzaWduYWxfY29ubmVjdF9kYXRh
CisgIChvZi1vYmplY3QgIkdsYWRlWE1MIikKKyAgKGMtbmFtZSAiZ2xhZGVfeG1sX3NpZ25hbF9j
b25uZWN0X2RhdGEiKQorICAocmV0dXJuLXR5cGUgIm5vbmUiKQorICAocGFyYW1ldGVycworICAg
ICcoImNvbnN0LWNoYXIqIiAiaGFuZGxlcm5hbWUiKQorICAgICcoIkdDYWxsYmFjayIgImZ1bmMi
KQorICAgICcoImdwb2ludGVyIiAidXNlcl9kYXRhIikKKyAgKQorKQorCisoZGVmaW5lLW1ldGhv
ZCBzaWduYWxfYXV0b2Nvbm5lY3QKKyAgKG9mLW9iamVjdCAiR2xhZGVYTUwiKQorICAoYy1uYW1l
ICJnbGFkZV94bWxfc2lnbmFsX2F1dG9jb25uZWN0IikKKyAgKHJldHVybi10eXBlICJub25lIikK
KykKKworKGRlZmluZS1tZXRob2Qgc2lnbmFsX2Nvbm5lY3RfZnVsbAorICAob2Ytb2JqZWN0ICJH
bGFkZVhNTCIpCisgIChjLW5hbWUgImdsYWRlX3htbF9zaWduYWxfY29ubmVjdF9mdWxsIikKKyAg
KHJldHVybi10eXBlICJub25lIikKKyAgKHBhcmFtZXRlcnMKKyAgICAnKCJjb25zdC1nY2hhcioi
ICJoYW5kbGVyX25hbWUiKQorICAgICcoIkdsYWRlWE1MQ29ubmVjdEZ1bmMiICJmdW5jIikKKyAg
ICAnKCJncG9pbnRlciIgInVzZXJfZGF0YSIpCisgICkKKykKKworKGRlZmluZS1tZXRob2Qgc2ln
bmFsX2F1dG9jb25uZWN0X2Z1bGwKKyAgKG9mLW9iamVjdCAiR2xhZGVYTUwiKQorICAoYy1uYW1l
ICJnbGFkZV94bWxfc2lnbmFsX2F1dG9jb25uZWN0X2Z1bGwiKQorICAocmV0dXJuLXR5cGUgIm5v
bmUiKQorICAocGFyYW1ldGVycworICAgICcoIkdsYWRlWE1MQ29ubmVjdEZ1bmMiICJmdW5jIikK
KyAgICAnKCJncG9pbnRlciIgInVzZXJfZGF0YSIpCisgICkKKykKKworKGRlZmluZS1tZXRob2Qg
Z2V0X3dpZGdldAorICAob2Ytb2JqZWN0ICJHbGFkZVhNTCIpCisgIChjLW5hbWUgImdsYWRlX3ht
bF9nZXRfd2lkZ2V0IikKKyAgKHJldHVybi10eXBlICJHdGtXaWRnZXQqIikKKyAgKHBhcmFtZXRl
cnMKKyAgICAnKCJjb25zdC1jaGFyKiIgIm5hbWUiKQorICApCispCisKKyhkZWZpbmUtbWV0aG9k
IGdldF93aWRnZXRfcHJlZml4CisgIChvZi1vYmplY3QgIkdsYWRlWE1MIikKKyAgKGMtbmFtZSAi
Z2xhZGVfeG1sX2dldF93aWRnZXRfcHJlZml4IikKKyAgKHJldHVybi10eXBlICJHTGlzdCoiKQor
ICAocGFyYW1ldGVycworICAgICcoImNvbnN0LWNoYXIqIiAibmFtZSIpCisgICkKKykKKworKGRl
ZmluZS1tZXRob2QgcmVsYXRpdmVfZmlsZQorICAob2Ytb2JqZWN0ICJHbGFkZVhNTCIpCisgIChj
LW5hbWUgImdsYWRlX3htbF9yZWxhdGl2ZV9maWxlIikKKyAgKHJldHVybi10eXBlICJnY2hhcioi
KQorICAocGFyYW1ldGVycworICAgICcoImNvbnN0LWdjaGFyKiIgImZpbGVuYW1lIikKKyAgKQor
KQorCisoZGVmaW5lLWZ1bmN0aW9uIGdsYWRlX2dldF93aWRnZXRfbmFtZQorICAoYy1uYW1lICJn
bGFkZV9nZXRfd2lkZ2V0X25hbWUiKQorICAocmV0dXJuLXR5cGUgImNvbnN0LWNoYXIqIikKKyAg
KHBhcmFtZXRlcnMKKyAgICAnKCJHdGtXaWRnZXQqIiAid2lkZ2V0IikKKyAgKQorKQorCisoZGVm
aW5lLWZ1bmN0aW9uIGdldF93aWRnZXRfdHJlZQorICAoYy1uYW1lICJnbGFkZV9nZXRfd2lkZ2V0
X3RyZWUiKQorICAocmV0dXJuLXR5cGUgIkdsYWRlWE1MKiIpCisgIChwYXJhbWV0ZXJzCisgICAg
JygiR3RrV2lkZ2V0KiIgIndpZGdldCIpCisgICkKKykKKworKGRlZmluZS1mdW5jdGlvbiBzZXRf
Y3VzdG9tX2hhbmRsZXIKKyAgKGMtbmFtZSAiZ2xhZGVfc2V0X2N1c3RvbV9oYW5kbGVyIikKKyAg
KHJldHVybi10eXBlICJub25lIikKKyAgKHBhcmFtZXRlcnMKKyAgICAnKCJHbGFkZVhNTEN1c3Rv
bVdpZGdldEhhbmRsZXIiICJoYW5kbGVyIikKKyAgICAnKCJncG9pbnRlciIgInVzZXJfZGF0YSIp
CisgICkKICkKLQpkaWZmIC0tZ2l0IGEvZXh0L2xpYmdsYWRlL2xpYmdsYWRlLm92ZXJyaWRlcyBi
L2V4dC9saWJnbGFkZS9saWJnbGFkZS5vdmVycmlkZXMKaW5kZXggMzk4MDE1Zi4uNDMzNDlmMCAx
MDA2NDQKLS0tIGEvZXh0L2xpYmdsYWRlL2xpYmdsYWRlLm92ZXJyaWRlcworKysgYi9leHQvbGli
Z2xhZGUvbGliZ2xhZGUub3ZlcnJpZGVzCkBAIC0xMiwxNjcgKzEyLDQgQEAgaWdub3JlCiAgIGds
YWRlX3htbF9zaWduYWxfY29ubmVjdF9mdWxsCiAgIGdsYWRlX3htbF9zaWduYWxfY29ubmVjdF9k
YXRhCiAgIGdsYWRlX3htbF9zaWduYWxfYXV0b2Nvbm5lY3RfZnVsbAotJSUKLW92ZXJyaWRlIGds
YWRlX3htbF9zaWduYWxfY29ubmVjdAotc3RhdGljIHZvaWQgZ2xhZGVfY29ubmVjdF9vbmUoY29u
c3QgZ2NoYXIgKmhhbmRsZXJfbmFtZSwgR3RrT2JqZWN0ICpvYmosIGNvbnN0Ci0JCQkJCQkJICBn
Y2hhciAqc2lnbmFsX25hbWUsIGNvbnN0IGdjaGFyICpzaWduYWxfZGF0YSwKLQkJCQkJCQkgIEd0
a09iamVjdCAqY29ubmVjdF9vYmplY3QsIGdib29sZWFuIGFmdGVyLAotCQkJCQkJCSAgenZhbCAq
Y2FsbGJhY2tfZGF0YSkKLXsKLQl6dmFsICoqY2FsbGJhY2sgPSBOVUxMLCAqKmV4dHJhID0gTlVM
TCwgKipwYXNzX29iamVjdCA9IE5VTEw7Ci0JenZhbCAqKmNhbGxiYWNrX2ZpbGVuYW1lID0gTlVM
TCwgKipjYWxsYmFja19saW5lbm8gPSBOVUxMOwotCXp2YWwgKm9iamVjdDsKLQlUU1JNTFNfRkVU
Q0goKTsKLQotCXplbmRfaGFzaF9pbmRleF9maW5kKFpfQVJSVkFMX1AoY2FsbGJhY2tfZGF0YSks
IDAsICh2b2lkICoqKSZjYWxsYmFjayk7Ci0JemVuZF9oYXNoX2luZGV4X2ZpbmQoWl9BUlJWQUxf
UChjYWxsYmFja19kYXRhKSwgMSwgKHZvaWQgKiopJmV4dHJhKTsKLQl6ZW5kX2hhc2hfaW5kZXhf
ZmluZChaX0FSUlZBTF9QKGNhbGxiYWNrX2RhdGEpLCAyLCAodm9pZCAqKikmcGFzc19vYmplY3Qp
OwotCXplbmRfaGFzaF9pbmRleF9maW5kKFpfQVJSVkFMX1AoY2FsbGJhY2tfZGF0YSksIDMsICh2
b2lkICoqKSZjYWxsYmFja19maWxlbmFtZSk7Ci0JemVuZF9oYXNoX2luZGV4X2ZpbmQoWl9BUlJW
QUxfUChjYWxsYmFja19kYXRhKSwgNCwgKHZvaWQgKiopJmNhbGxiYWNrX2xpbmVubyk7Ci0KLQlp
ZiAoY29ubmVjdF9vYmplY3QpIHsKLQkJenZhbCAqdGVtcDsKLQotCQlaX0xWQUxfUFAocGFzc19v
YmplY3QpID0gMDsKLQkJb2JqZWN0ID0gcGhwX2d0a19uZXcoY29ubmVjdF9vYmplY3QpOwotCQlN
QUtFX1NURF9aVkFMKHRlbXApOwotCQlhcnJheV9pbml0KHRlbXApOwotCQlhZGRfbmV4dF9pbmRl
eF96dmFsKHRlbXAsIG9iamVjdCk7Ci0JCXBocF9hcnJheV9tZXJnZShaX0FSUlZBTF9QKHRlbXAp
LCBaX0FSUlZBTF9QUChleHRyYSksIDAgVFNSTUxTX0NDKTsKLQkJUkVQTEFDRV9aVkFMX1ZBTFVF
KGV4dHJhLCB0ZW1wLCAwKTsKLQl9Ci0KLQlndGtfc2lnbmFsX2Nvbm5lY3RfZnVsbChvYmosIHNp
Z25hbF9uYW1lLCBOVUxMLAotCQkJCQkJCShHdGtDYWxsYmFja01hcnNoYWwpcGhwX2d0a19jYWxs
YmFja19tYXJzaGFsLAotCQkJCQkJCWNhbGxiYWNrX2RhdGEsIHBocF9ndGtfZGVzdHJveV9ub3Rp
ZnksIEZBTFNFLCBhZnRlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGdsYWRlX3NpZ25hbF9jb25uZWN0
X2ltcGwoSU5URVJOQUxfRlVOQ1RJT05fUEFSQU1FVEVSUywgaW50IHBhc3Nfb2JqZWN0KQotewot
CWNoYXIgKmhhbmRsZXJfbmFtZSA9IE5VTEw7Ci0JenZhbCAqY2FsbGJhY2sgPSBOVUxMOwotCXp2
YWwgKmV4dHJhOwotCXp2YWwgKmRhdGE7Ci0JY2hhciAqY2FsbGJhY2tfZmlsZW5hbWU7Ci0JdWlu
dCBjYWxsYmFja19saW5lbm87Ci0KLQlOT1RfU1RBVElDX01FVEhPRCgpOwotCi0JaWYgKFpFTkRf
TlVNX0FSR1MoKSA8IDIpIHsKLQkJcGhwX2Vycm9yKEVfV0FSTklORywgIiVzKCkgcmVxdWlyZXMg
YXQgbGVhc3QgMiBhcmd1bWVudHMsICVkIGdpdmVuIiwKLQkJCQkgIGdldF9hY3RpdmVfZnVuY3Rp
b25fbmFtZShUU1JNTFNfQyksIFpFTkRfTlVNX0FSR1MoKSk7Ci0JCXJldHVybjsKLQl9Ci0KLQlp
ZiAoIXBocF9ndGtfcGFyc2VfYXJncygyLCAic1YiLCAmaGFuZGxlcl9uYW1lLCAmY2FsbGJhY2sp
KQotCQlyZXR1cm47Ci0KLQljYWxsYmFja19maWxlbmFtZSA9IHplbmRfZ2V0X2V4ZWN1dGVkX2Zp
bGVuYW1lKFRTUk1MU19DKTsKLQljYWxsYmFja19saW5lbm8gPSB6ZW5kX2dldF9leGVjdXRlZF9s
aW5lbm8oVFNSTUxTX0MpOwotCWV4dHJhID0gcGhwX2d0a19mdW5jX2FyZ3NfYXNfaGFzaChaRU5E
X05VTV9BUkdTKCksIDIsIFpFTkRfTlVNX0FSR1MoKSk7Ci0JZGF0YSA9IHBocF9ndGtfYnVpbGRf
dmFsdWUoIihWTmlzaSkiLCBjYWxsYmFjaywgZXh0cmEsIHBhc3Nfb2JqZWN0LCBjYWxsYmFja19m
aWxlbmFtZSwgY2FsbGJhY2tfbGluZW5vKTsKLQlnbGFkZV94bWxfc2lnbmFsX2Nvbm5lY3RfZnVs
bChHTEFERV9YTUwoUEhQX0dUS19HRVQodGhpc19wdHIpKSwgaGFuZGxlcl9uYW1lLAotCQkJCQkJ
CQkgIChHbGFkZVhNTENvbm5lY3RGdW5jKWdsYWRlX2Nvbm5lY3Rfb25lLCBkYXRhKTsKLQlSRVRV
Uk5fTlVMTCgpOwotfQotCi1QSFBfRlVOQ1RJT04oZ2xhZGVfeG1sX3NpZ25hbF9jb25uZWN0KQot
ewotCWdsYWRlX3NpZ25hbF9jb25uZWN0X2ltcGwoSU5URVJOQUxfRlVOQ1RJT05fUEFSQU1fUEFT
U1RIUlUsIDEpOwotfQotJSUKLW92ZXJyaWRlIGdsYWRlX3htbF9zaWduYWxfY29ubmVjdF9vYmpl
Y3Qgc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IEdsYWRlWE1MCi1QSFBfRlVOQ1RJT04oZ2xhZGVfeG1s
X3NpZ25hbF9jb25uZWN0X29iamVjdCkKLXsKLQlnbGFkZV9zaWduYWxfY29ubmVjdF9pbXBsKElO
VEVSTkFMX0ZVTkNUSU9OX1BBUkFNX1BBU1NUSFJVLCAwKTsKLX0KLSUlCi1vdmVycmlkZSBnbGFk
ZV94bWxfc2lnbmFsX2F1dG9jb25uZWN0Ci0KLXR5cGVkZWYgc3RydWN0IF9waHBfZ3RrX2F1dG9j
b25uZWN0X2RhdGEgewotCXplbmRfYm9vbCBwYXNzX29iamVjdDsKLQl6dmFsICptYXA7Ci19IHBo
cF9ndGtfYXV0b2Nvbm5lY3RfZGF0YTsKLQotc3RhdGljIHZvaWQgZ2xhZGVfY29ubmVjdF9hdXRv
KGNvbnN0IGdjaGFyICpoYW5kbGVyX25hbWUsIEd0a09iamVjdCAqb2JqLAotCQkJCQkJCSAgIGNv
bnN0IGdjaGFyICpzaWduYWxfbmFtZSwgY29uc3QgZ2NoYXIgKnNpZ25hbF9kYXRhLAotCQkJCQkJ
CSAgIEd0a09iamVjdCAqY29ubmVjdF9vYmplY3QsIGdib29sZWFuIGFmdGVyLAotCQkJCQkJCSAg
IHBocF9ndGtfYXV0b2Nvbm5lY3RfZGF0YSAqYWNfZGF0YSkKLXsKLQl6dmFsICoqY2FsbGJhY2tf
ZGF0YSA9IE5VTEwsICptYXAgPSBhY19kYXRhLT5tYXA7Ci0JenZhbCAqKmNhbGxiYWNrX3B0ciA9
IE5VTEwsICpleHRyYSA9IE5VTEwsICpwYXJhbXMgPSBOVUxMOwotCXp2YWwgKmNhbGxiYWNrLCAq
ZGF0YSwgKm9iamVjdCA9IE5VTEw7Ci0JaW50IHBhc3Nfb2JqZWN0ID0gYWNfZGF0YS0+cGFzc19v
YmplY3Q7Ci0JY2hhciAqY2FsbGJhY2tfZmlsZW5hbWU7Ci0JdWludCBjYWxsYmFja19saW5lbm87
Ci0JVFNSTUxTX0ZFVENIKCk7Ci0KLQlpZiAobWFwICYmIHplbmRfaGFzaF9maW5kKFpfQVJSVkFM
X1AobWFwKSwgKGNoYXIgKiloYW5kbGVyX25hbWUsIHN0cmxlbihoYW5kbGVyX25hbWUpICsgMSwg
KHZvaWQgKiopJmNhbGxiYWNrX2RhdGEpID09IFNVQ0NFU1MpIHsKLQkJaWYgKFpfVFlQRV9QUChj
YWxsYmFja19kYXRhKSAhPSBJU19BUlJBWSB8fAotCQkJemVuZF9oYXNoX2luZGV4X2ZpbmQoWl9B
UlJWQUxfUFAoY2FsbGJhY2tfZGF0YSksIDAsICh2b2lkICoqKSZjYWxsYmFja19wdHIpID09IEZB
SUxVUkUpIHsKLQkJCXBocF9lcnJvcihFX1dBUk5JTkcsICIlcygpIGlzIHN1cHBsaWVkIHdpdGgg
aW52YWxpZCBjYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIGhhbmRsZXIgJyVzJyIsIGdldF9hY3RpdmVf
ZnVuY3Rpb25fbmFtZShUU1JNTFNfQyksIGhhbmRsZXJfbmFtZSk7Ci0JCQlyZXR1cm47IAotCQl9
Ci0JCXp2YWxfYWRkX3JlZihjYWxsYmFja19wdHIpOwotCQljYWxsYmFjayA9ICpjYWxsYmFja19w
dHI7Ci0JCXplbmRfaGFzaF9pbmRleF9kZWwoWl9BUlJWQUxfUFAoY2FsbGJhY2tfZGF0YSksIDAp
OwotCQlleHRyYSA9ICpjYWxsYmFja19kYXRhOwotCX0gZWxzZSB7Ci0JCU1BS0VfU1REX1pWQUwo
Y2FsbGJhY2spOwotCQlaVkFMX1NUUklORyhjYWxsYmFjaywgKGNoYXIgKiloYW5kbGVyX25hbWUs
IDEpOwotCX0KLQotCWlmICghemVuZF9pc19jYWxsYWJsZShjYWxsYmFjaywgMCwgTlVMTCkpIHsK
LQkJcGhwX2Vycm9yKEVfV0FSTklORywgIiVzKCkgaXMgdW5hYmxlIHRvIGF1dG9jb25uZWN0IGNh
bGxiYWNrIGZvciBoYW5kbGVyICclcyciLAotCQkJCSAgZ2V0X2FjdGl2ZV9mdW5jdGlvbl9uYW1l
KFRTUk1MU19DKSwgaGFuZGxlcl9uYW1lKTsKLQkJcmV0dXJuOwotCX0KLQkKLQlNQUtFX1NURF9a
VkFMKHBhcmFtcyk7Ci0JYXJyYXlfaW5pdChwYXJhbXMpOwotCi0JaWYgKGNvbm5lY3Rfb2JqZWN0
KSB7Ci0JCXBhc3Nfb2JqZWN0ID0gMDsKLQkJb2JqZWN0ID0gcGhwX2d0a19uZXcoY29ubmVjdF9v
YmplY3QpOwotCQlhZGRfbmV4dF9pbmRleF96dmFsKHBhcmFtcywgb2JqZWN0KTsKLQl9Ci0JCi0J
aWYgKGV4dHJhKQotCQlwaHBfYXJyYXlfbWVyZ2UoWl9BUlJWQUxfUChwYXJhbXMpLCBaX0FSUlZB
TF9QKGV4dHJhKSwgMCBUU1JNTFNfQ0MpOwogCi0JY2FsbGJhY2tfZmlsZW5hbWUgPSB6ZW5kX2dl
dF9leGVjdXRlZF9maWxlbmFtZShUU1JNTFNfQyk7Ci0JY2FsbGJhY2tfbGluZW5vID0gemVuZF9n
ZXRfZXhlY3V0ZWRfbGluZW5vKFRTUk1MU19DKTsKLQlkYXRhID0gcGhwX2d0a19idWlsZF92YWx1
ZSgiKE5OaXNpKSIsIGNhbGxiYWNrLCBwYXJhbXMsIHBhc3Nfb2JqZWN0LAotCQkJCQkJCSAgIGNh
bGxiYWNrX2ZpbGVuYW1lLCBjYWxsYmFja19saW5lbm8pOwotCWd0a19zaWduYWxfY29ubmVjdF9m
dWxsKG9iaiwgc2lnbmFsX25hbWUsIE5VTEwsCi0JCQkJCQkJKEd0a0NhbGxiYWNrTWFyc2hhbClw
aHBfZ3RrX2NhbGxiYWNrX21hcnNoYWwsCi0JCQkJCQkJZGF0YSwgcGhwX2d0a19kZXN0cm95X25v
dGlmeSwgRkFMU0UsIGFmdGVyKTsKLX0KLQotc3RhdGljIHZvaWQgZ2xhZGVfc2lnbmFsX2F1dG9j
b25uZWN0X2ltcGwoSU5URVJOQUxfRlVOQ1RJT05fUEFSQU1FVEVSUywgaW50IHBhc3Nfb2JqZWN0
KQotewotCXp2YWwgKm1hcCA9IE5VTEw7Ci0JcGhwX2d0a19hdXRvY29ubmVjdF9kYXRhICphY19k
YXRhOwotCi0JTk9UX1NUQVRJQ19NRVRIT0QoKTsKLQotCWlmICghcGhwX2d0a19wYXJzZV9hcmdz
KFpFTkRfTlVNX0FSR1MoKSwgInxhIiwgJm1hcCkpCi0JCXJldHVybjsKLQotCWFjX2RhdGEgPSAo
cGhwX2d0a19hdXRvY29ubmVjdF9kYXRhICopZW1hbGxvYyhzaXplb2YocGhwX2d0a19hdXRvY29u
bmVjdF9kYXRhKSk7Ci0JYWNfZGF0YS0+bWFwID0gbWFwOwotCWFjX2RhdGEtPnBhc3Nfb2JqZWN0
ID0gcGFzc19vYmplY3Q7Ci0JZ2xhZGVfeG1sX3NpZ25hbF9hdXRvY29ubmVjdF9mdWxsKEdMQURF
X1hNTChQSFBfR1RLX0dFVCh0aGlzX3B0cikpLAotCQkJCQkJCQkJICAoR2xhZGVYTUxDb25uZWN0
RnVuYylnbGFkZV9jb25uZWN0X2F1dG8sIGFjX2RhdGEpOwotfQotCi1QSFBfRlVOQ1RJT04oZ2xh
ZGVfeG1sX3NpZ25hbF9hdXRvY29ubmVjdCkKLXsKLQlnbGFkZV9zaWduYWxfYXV0b2Nvbm5lY3Rf
aW1wbChJTlRFUk5BTF9GVU5DVElPTl9QQVJBTV9QQVNTVEhSVSwgMSk7Ci19Ci0lJQotb3ZlcnJp
ZGUgZ2xhZGVfeG1sX3NpZ25hbF9hdXRvY29ubmVjdF9vYmplY3Qgc2lnbmFsX2F1dG9jb25uZWN0
X29iamVjdCBHbGFkZVhNTAotUEhQX0ZVTkNUSU9OKGdsYWRlX3htbF9zaWduYWxfYXV0b2Nvbm5l
Y3Rfb2JqZWN0KQotewotCWdsYWRlX3NpZ25hbF9hdXRvY29ubmVjdF9pbXBsKElOVEVSTkFMX0ZV
TkNUSU9OX1BBUkFNX1BBU1NUSFJVLCAwKTsKLX0KZGlmZiAtLWdpdCBhL2V4dC9saWJnbGFkZS9w
aHBfbGliZ2xhZGUuYyBiL2V4dC9saWJnbGFkZS9waHBfbGliZ2xhZGUuYwppbmRleCAzZTdlNzM1
Li5mNzI1NzY4IDEwMDY0NAotLS0gYS9leHQvbGliZ2xhZGUvcGhwX2xpYmdsYWRlLmMKKysrIGIv
ZXh0L2xpYmdsYWRlL3BocF9saWJnbGFkZS5jCkBAIC0yNCwxNSArMjQsMTQgQEAKIAogI2lmIEhB
VkVfTElCR0xBREUKIAotI2lmZGVmIFBIUF9HVEtfQ09NUElMRV9ETF9MSUJHTEFERQotUEhQX0dU
S19HRVRfRVhURU5TSU9OKGxpYmdsYWRlKQorI2lmZGVmIENPTVBJTEVfRExfTElCR0xBREUyCitQ
SFBfR1RLX0dFVF9FWFRFTlNJT04obGliZ2xhZGUpOwogI2VuZGlmCiAKIFBIUF9HVEtfWElOSVRf
RlVOQ1RJT04obGliZ2xhZGUpCiB7Ci0JZ2xhZGVfaW5pdCgpOwotCXBocF9saWJnbGFkZV9yZWdp
c3Rlcl9jb25zdGFudHMobW9kdWxlX251bWJlciBUU1JNTFNfQ0MpOwotCXBocF9saWJnbGFkZV9y
ZWdpc3Rlcl9jbGFzc2VzKCk7CisJcGhwZ19saWJnbGFkZV9yZWdpc3Rlcl9jbGFzc2VzKCk7CisJ
cGhwZ19saWJnbGFkZV9yZWdpc3Rlcl9jb25zdGFudHMoIkdMQURFXyIpOwogCiAJcmV0dXJuIFNV
Q0NFU1M7CiB9CkBAIC00MCw3ICszOSw3IEBAIFBIUF9HVEtfWElOSVRfRlVOQ1RJT04obGliZ2xh
ZGUpCiBwaHBfZ3RrX2V4dF9lbnRyeSBsaWJnbGFkZV9leHRfZW50cnkgPSB7CiAJImxpYmdsYWRl
IiwKIAlQSFBfR1RLX1hJTklUKGxpYmdsYWRlKSwKLQlOVUxMLAorCU5VTEwKIH07CiAKLSNlbmRp
ZgkvKiBIQVZFX0xJQkdMQURFICovCisjZW5kaWYgLyogSEFWRV9MSUJHTEFERSAqLwpkaWZmIC0t
Z2l0IGEvZXh0L2xpYmdsYWRlL3BocF9saWJnbGFkZS5oIGIvZXh0L2xpYmdsYWRlL3BocF9saWJn
bGFkZS5oCmluZGV4IDZmZWYyYjcuLjQxODIzNWYgMTAwNjQ0Ci0tLSBhL2V4dC9saWJnbGFkZS9w
aHBfbGliZ2xhZGUuaAorKysgYi9leHQvbGliZ2xhZGUvcGhwX2xpYmdsYWRlLmgKQEAgLTI4LDIw
ICsyOCwxOCBAQAogI2lmIEhBVkVfTElCR0xBREUKIAogI2luY2x1ZGUgPGdsYWRlL2dsYWRlLmg+
Ci0jaW5jbHVkZSAiZ2VuX2NlX2xpYmdsYWRlLmgiCisjaW5jbHVkZSAiZ2VuX2xpYmdsYWRlLmgi
CiAKIGV4dGVybiBwaHBfZ3RrX2V4dF9lbnRyeSBsaWJnbGFkZV9leHRfZW50cnk7Ci0jZGVmaW5l
IGxpYmdsYWRlX2V4dF9wdHIgJmxpYmdsYWRlX2V4dF9lbnRyeQorI2RlZmluZSBwaHBfZ3RrX2V4
dF9saWJnbGFkZV9wdHIgJmxpYmdsYWRlX2V4dF9lbnRyeQogCi12b2lkIHBocF9saWJnbGFkZV9y
ZWdpc3Rlcl9jb25zdGFudHMoaW50IG1vZHVsZV9udW1iZXIgVFNSTUxTX0RDKTsKLXZvaWQgcGhw
X2xpYmdsYWRlX3JlZ2lzdGVyX2NsYXNzZXMoKTsKK3ZvaWQgcGhwZ19saWJnbGFkZV9yZWdpc3Rl
cl9jb25zdGFudHMoY29uc3QgY2hhciAqc3RyaXBfcHJlZml4KTsKK3ZvaWQgcGhwZ19saWJnbGFk
ZV9yZWdpc3Rlcl9jbGFzc2VzKHZvaWQpOwogCiAjZWxzZQogCi0jZGVmaW5lIGxpYmdsYWRlX2V4
dF9wdHIgTlVMTAorI2RlZmluZSBwaHBfZ3RrX2V4dF9saWJnbGFkZV9wdHIgTlVMTAogCi0jZW5k
aWYJLyogSEFWRV9MSUJHTEFERSAqLworI2VuZGlmIC8qIEhBVkVfTElCR0xBREUgKi8KIAotI2Rl
ZmluZSBwaHBfZ3RrX2V4dF9saWJnbGFkZV9wdHIgbGliZ2xhZGVfZXh0X3B0cgotCi0jZW5kaWYJ
LyogUEhQX0xJQkdMQURFX0ggKi8KKyNlbmRpZiAvKiBQSFBfTElCR0xBREVfSCAqLwpkaWZmIC0t
Z2l0IGEvZXh0L2xpYmdsYWRlL3YxLmxpYmdsYWRlLm92ZXJyaWRlcyBiL2V4dC9saWJnbGFkZS92
MS5saWJnbGFkZS5vdmVycmlkZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Mzk4MDE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2V4dC9saWJnbGFkZS92MS5saWJnbGFkZS5vdmVy
cmlkZXMKQEAgLTAsMCArMSwxNzggQEAKKy8qIHZpbTogc2V0IGZ0PWNwcDogKi8KKyUlCitoZWFk
ZXJzCisjaW5jbHVkZSA8Z2xhZGUvZ2xhZGUuaD4KKyNpbmNsdWRlICJleHQvZ3RrKy9waHBfZ3Rr
Ky5oIgorJSUKK2lnbm9yZS1nbG9iCisgICpfZ2V0X3R5cGUKKyUlCitpZ25vcmUKKyAgZ2xhZGVf
eG1sX25ldworICBnbGFkZV94bWxfc2lnbmFsX2Nvbm5lY3RfZnVsbAorICBnbGFkZV94bWxfc2ln
bmFsX2Nvbm5lY3RfZGF0YQorICBnbGFkZV94bWxfc2lnbmFsX2F1dG9jb25uZWN0X2Z1bGwKKyUl
CitvdmVycmlkZSBnbGFkZV94bWxfc2lnbmFsX2Nvbm5lY3QKK3N0YXRpYyB2b2lkIGdsYWRlX2Nv
bm5lY3Rfb25lKGNvbnN0IGdjaGFyICpoYW5kbGVyX25hbWUsIEd0a09iamVjdCAqb2JqLCBjb25z
dAorCQkJCQkJCSAgZ2NoYXIgKnNpZ25hbF9uYW1lLCBjb25zdCBnY2hhciAqc2lnbmFsX2RhdGEs
CisJCQkJCQkJICBHdGtPYmplY3QgKmNvbm5lY3Rfb2JqZWN0LCBnYm9vbGVhbiBhZnRlciwKKwkJ
CQkJCQkgIHp2YWwgKmNhbGxiYWNrX2RhdGEpCit7CisJenZhbCAqKmNhbGxiYWNrID0gTlVMTCwg
KipleHRyYSA9IE5VTEwsICoqcGFzc19vYmplY3QgPSBOVUxMOworCXp2YWwgKipjYWxsYmFja19m
aWxlbmFtZSA9IE5VTEwsICoqY2FsbGJhY2tfbGluZW5vID0gTlVMTDsKKwl6dmFsICpvYmplY3Q7
CisJVFNSTUxTX0ZFVENIKCk7CisKKwl6ZW5kX2hhc2hfaW5kZXhfZmluZChaX0FSUlZBTF9QKGNh
bGxiYWNrX2RhdGEpLCAwLCAodm9pZCAqKikmY2FsbGJhY2spOworCXplbmRfaGFzaF9pbmRleF9m
aW5kKFpfQVJSVkFMX1AoY2FsbGJhY2tfZGF0YSksIDEsICh2b2lkICoqKSZleHRyYSk7CisJemVu
ZF9oYXNoX2luZGV4X2ZpbmQoWl9BUlJWQUxfUChjYWxsYmFja19kYXRhKSwgMiwgKHZvaWQgKiop
JnBhc3Nfb2JqZWN0KTsKKwl6ZW5kX2hhc2hfaW5kZXhfZmluZChaX0FSUlZBTF9QKGNhbGxiYWNr
X2RhdGEpLCAzLCAodm9pZCAqKikmY2FsbGJhY2tfZmlsZW5hbWUpOworCXplbmRfaGFzaF9pbmRl
eF9maW5kKFpfQVJSVkFMX1AoY2FsbGJhY2tfZGF0YSksIDQsICh2b2lkICoqKSZjYWxsYmFja19s
aW5lbm8pOworCisJaWYgKGNvbm5lY3Rfb2JqZWN0KSB7CisJCXp2YWwgKnRlbXA7CisKKwkJWl9M
VkFMX1BQKHBhc3Nfb2JqZWN0KSA9IDA7CisJCW9iamVjdCA9IHBocF9ndGtfbmV3KGNvbm5lY3Rf
b2JqZWN0KTsKKwkJTUFLRV9TVERfWlZBTCh0ZW1wKTsKKwkJYXJyYXlfaW5pdCh0ZW1wKTsKKwkJ
YWRkX25leHRfaW5kZXhfenZhbCh0ZW1wLCBvYmplY3QpOworCQlwaHBfYXJyYXlfbWVyZ2UoWl9B
UlJWQUxfUCh0ZW1wKSwgWl9BUlJWQUxfUFAoZXh0cmEpLCAwIFRTUk1MU19DQyk7CisJCVJFUExB
Q0VfWlZBTF9WQUxVRShleHRyYSwgdGVtcCwgMCk7CisJfQorCisJZ3RrX3NpZ25hbF9jb25uZWN0
X2Z1bGwob2JqLCBzaWduYWxfbmFtZSwgTlVMTCwKKwkJCQkJCQkoR3RrQ2FsbGJhY2tNYXJzaGFs
KXBocF9ndGtfY2FsbGJhY2tfbWFyc2hhbCwKKwkJCQkJCQljYWxsYmFja19kYXRhLCBwaHBfZ3Rr
X2Rlc3Ryb3lfbm90aWZ5LCBGQUxTRSwgYWZ0ZXIpOworfQorCitzdGF0aWMgdm9pZCBnbGFkZV9z
aWduYWxfY29ubmVjdF9pbXBsKElOVEVSTkFMX0ZVTkNUSU9OX1BBUkFNRVRFUlMsIGludCBwYXNz
X29iamVjdCkKK3sKKwljaGFyICpoYW5kbGVyX25hbWUgPSBOVUxMOworCXp2YWwgKmNhbGxiYWNr
ID0gTlVMTDsKKwl6dmFsICpleHRyYTsKKwl6dmFsICpkYXRhOworCWNoYXIgKmNhbGxiYWNrX2Zp
bGVuYW1lOworCXVpbnQgY2FsbGJhY2tfbGluZW5vOworCisJTk9UX1NUQVRJQ19NRVRIT0QoKTsK
KworCWlmIChaRU5EX05VTV9BUkdTKCkgPCAyKSB7CisJCXBocF9lcnJvcihFX1dBUk5JTkcsICIl
cygpIHJlcXVpcmVzIGF0IGxlYXN0IDIgYXJndW1lbnRzLCAlZCBnaXZlbiIsCisJCQkJICBnZXRf
YWN0aXZlX2Z1bmN0aW9uX25hbWUoVFNSTUxTX0MpLCBaRU5EX05VTV9BUkdTKCkpOworCQlyZXR1
cm47CisJfQorCisJaWYgKCFwaHBfZ3RrX3BhcnNlX2FyZ3MoMiwgInNWIiwgJmhhbmRsZXJfbmFt
ZSwgJmNhbGxiYWNrKSkKKwkJcmV0dXJuOworCisJY2FsbGJhY2tfZmlsZW5hbWUgPSB6ZW5kX2dl
dF9leGVjdXRlZF9maWxlbmFtZShUU1JNTFNfQyk7CisJY2FsbGJhY2tfbGluZW5vID0gemVuZF9n
ZXRfZXhlY3V0ZWRfbGluZW5vKFRTUk1MU19DKTsKKwlleHRyYSA9IHBocF9ndGtfZnVuY19hcmdz
X2FzX2hhc2goWkVORF9OVU1fQVJHUygpLCAyLCBaRU5EX05VTV9BUkdTKCkpOworCWRhdGEgPSBw
aHBfZ3RrX2J1aWxkX3ZhbHVlKCIoVk5pc2kpIiwgY2FsbGJhY2ssIGV4dHJhLCBwYXNzX29iamVj
dCwgY2FsbGJhY2tfZmlsZW5hbWUsIGNhbGxiYWNrX2xpbmVubyk7CisJZ2xhZGVfeG1sX3NpZ25h
bF9jb25uZWN0X2Z1bGwoR0xBREVfWE1MKFBIUF9HVEtfR0VUKHRoaXNfcHRyKSksIGhhbmRsZXJf
bmFtZSwKKwkJCQkJCQkJICAoR2xhZGVYTUxDb25uZWN0RnVuYylnbGFkZV9jb25uZWN0X29uZSwg
ZGF0YSk7CisJUkVUVVJOX05VTEwoKTsKK30KKworUEhQX0ZVTkNUSU9OKGdsYWRlX3htbF9zaWdu
YWxfY29ubmVjdCkKK3sKKwlnbGFkZV9zaWduYWxfY29ubmVjdF9pbXBsKElOVEVSTkFMX0ZVTkNU
SU9OX1BBUkFNX1BBU1NUSFJVLCAxKTsKK30KKyUlCitvdmVycmlkZSBnbGFkZV94bWxfc2lnbmFs
X2Nvbm5lY3Rfb2JqZWN0IHNpZ25hbF9jb25uZWN0X29iamVjdCBHbGFkZVhNTAorUEhQX0ZVTkNU
SU9OKGdsYWRlX3htbF9zaWduYWxfY29ubmVjdF9vYmplY3QpCit7CisJZ2xhZGVfc2lnbmFsX2Nv
bm5lY3RfaW1wbChJTlRFUk5BTF9GVU5DVElPTl9QQVJBTV9QQVNTVEhSVSwgMCk7Cit9CislJQor
b3ZlcnJpZGUgZ2xhZGVfeG1sX3NpZ25hbF9hdXRvY29ubmVjdAorCit0eXBlZGVmIHN0cnVjdCBf
cGhwX2d0a19hdXRvY29ubmVjdF9kYXRhIHsKKwl6ZW5kX2Jvb2wgcGFzc19vYmplY3Q7CisJenZh
bCAqbWFwOworfSBwaHBfZ3RrX2F1dG9jb25uZWN0X2RhdGE7CisKK3N0YXRpYyB2b2lkIGdsYWRl
X2Nvbm5lY3RfYXV0byhjb25zdCBnY2hhciAqaGFuZGxlcl9uYW1lLCBHdGtPYmplY3QgKm9iaiwK
KwkJCQkJCQkgICBjb25zdCBnY2hhciAqc2lnbmFsX25hbWUsIGNvbnN0IGdjaGFyICpzaWduYWxf
ZGF0YSwKKwkJCQkJCQkgICBHdGtPYmplY3QgKmNvbm5lY3Rfb2JqZWN0LCBnYm9vbGVhbiBhZnRl
ciwKKwkJCQkJCQkgICBwaHBfZ3RrX2F1dG9jb25uZWN0X2RhdGEgKmFjX2RhdGEpCit7CisJenZh
bCAqKmNhbGxiYWNrX2RhdGEgPSBOVUxMLCAqbWFwID0gYWNfZGF0YS0+bWFwOworCXp2YWwgKipj
YWxsYmFja19wdHIgPSBOVUxMLCAqZXh0cmEgPSBOVUxMLCAqcGFyYW1zID0gTlVMTDsKKwl6dmFs
ICpjYWxsYmFjaywgKmRhdGEsICpvYmplY3QgPSBOVUxMOworCWludCBwYXNzX29iamVjdCA9IGFj
X2RhdGEtPnBhc3Nfb2JqZWN0OworCWNoYXIgKmNhbGxiYWNrX2ZpbGVuYW1lOworCXVpbnQgY2Fs
bGJhY2tfbGluZW5vOworCVRTUk1MU19GRVRDSCgpOworCisJaWYgKG1hcCAmJiB6ZW5kX2hhc2hf
ZmluZChaX0FSUlZBTF9QKG1hcCksIChjaGFyICopaGFuZGxlcl9uYW1lLCBzdHJsZW4oaGFuZGxl
cl9uYW1lKSArIDEsICh2b2lkICoqKSZjYWxsYmFja19kYXRhKSA9PSBTVUNDRVNTKSB7CisJCWlm
IChaX1RZUEVfUFAoY2FsbGJhY2tfZGF0YSkgIT0gSVNfQVJSQVkgfHwKKwkJCXplbmRfaGFzaF9p
bmRleF9maW5kKFpfQVJSVkFMX1BQKGNhbGxiYWNrX2RhdGEpLCAwLCAodm9pZCAqKikmY2FsbGJh
Y2tfcHRyKSA9PSBGQUlMVVJFKSB7CisJCQlwaHBfZXJyb3IoRV9XQVJOSU5HLCAiJXMoKSBpcyBz
dXBwbGllZCB3aXRoIGludmFsaWQgY2FsbGJhY2sgc3RydWN0dXJlIGZvciBoYW5kbGVyICclcyci
LCBnZXRfYWN0aXZlX2Z1bmN0aW9uX25hbWUoVFNSTUxTX0MpLCBoYW5kbGVyX25hbWUpOworCQkJ
cmV0dXJuOyAKKwkJfQorCQl6dmFsX2FkZF9yZWYoY2FsbGJhY2tfcHRyKTsKKwkJY2FsbGJhY2sg
PSAqY2FsbGJhY2tfcHRyOworCQl6ZW5kX2hhc2hfaW5kZXhfZGVsKFpfQVJSVkFMX1BQKGNhbGxi
YWNrX2RhdGEpLCAwKTsKKwkJZXh0cmEgPSAqY2FsbGJhY2tfZGF0YTsKKwl9IGVsc2UgeworCQlN
QUtFX1NURF9aVkFMKGNhbGxiYWNrKTsKKwkJWlZBTF9TVFJJTkcoY2FsbGJhY2ssIChjaGFyICop
aGFuZGxlcl9uYW1lLCAxKTsKKwl9CisKKwlpZiAoIXplbmRfaXNfY2FsbGFibGUoY2FsbGJhY2ss
IDAsIE5VTEwpKSB7CisJCXBocF9lcnJvcihFX1dBUk5JTkcsICIlcygpIGlzIHVuYWJsZSB0byBh
dXRvY29ubmVjdCBjYWxsYmFjayBmb3IgaGFuZGxlciAnJXMnIiwKKwkJCQkgIGdldF9hY3RpdmVf
ZnVuY3Rpb25fbmFtZShUU1JNTFNfQyksIGhhbmRsZXJfbmFtZSk7CisJCXJldHVybjsKKwl9CisJ
CisJTUFLRV9TVERfWlZBTChwYXJhbXMpOworCWFycmF5X2luaXQocGFyYW1zKTsKKworCWlmIChj
b25uZWN0X29iamVjdCkgeworCQlwYXNzX29iamVjdCA9IDA7CisJCW9iamVjdCA9IHBocF9ndGtf
bmV3KGNvbm5lY3Rfb2JqZWN0KTsKKwkJYWRkX25leHRfaW5kZXhfenZhbChwYXJhbXMsIG9iamVj
dCk7CisJfQorCQorCWlmIChleHRyYSkKKwkJcGhwX2FycmF5X21lcmdlKFpfQVJSVkFMX1AocGFy
YW1zKSwgWl9BUlJWQUxfUChleHRyYSksIDAgVFNSTUxTX0NDKTsKKworCWNhbGxiYWNrX2ZpbGVu
YW1lID0gemVuZF9nZXRfZXhlY3V0ZWRfZmlsZW5hbWUoVFNSTUxTX0MpOworCWNhbGxiYWNrX2xp
bmVubyA9IHplbmRfZ2V0X2V4ZWN1dGVkX2xpbmVubyhUU1JNTFNfQyk7CisJZGF0YSA9IHBocF9n
dGtfYnVpbGRfdmFsdWUoIihOTmlzaSkiLCBjYWxsYmFjaywgcGFyYW1zLCBwYXNzX29iamVjdCwK
KwkJCQkJCQkgICBjYWxsYmFja19maWxlbmFtZSwgY2FsbGJhY2tfbGluZW5vKTsKKwlndGtfc2ln
bmFsX2Nvbm5lY3RfZnVsbChvYmosIHNpZ25hbF9uYW1lLCBOVUxMLAorCQkJCQkJCShHdGtDYWxs
YmFja01hcnNoYWwpcGhwX2d0a19jYWxsYmFja19tYXJzaGFsLAorCQkJCQkJCWRhdGEsIHBocF9n
dGtfZGVzdHJveV9ub3RpZnksIEZBTFNFLCBhZnRlcik7Cit9CisKK3N0YXRpYyB2b2lkIGdsYWRl
X3NpZ25hbF9hdXRvY29ubmVjdF9pbXBsKElOVEVSTkFMX0ZVTkNUSU9OX1BBUkFNRVRFUlMsIGlu
dCBwYXNzX29iamVjdCkKK3sKKwl6dmFsICptYXAgPSBOVUxMOworCXBocF9ndGtfYXV0b2Nvbm5l
Y3RfZGF0YSAqYWNfZGF0YTsKKworCU5PVF9TVEFUSUNfTUVUSE9EKCk7CisKKwlpZiAoIXBocF9n
dGtfcGFyc2VfYXJncyhaRU5EX05VTV9BUkdTKCksICJ8YSIsICZtYXApKQorCQlyZXR1cm47CisK
KwlhY19kYXRhID0gKHBocF9ndGtfYXV0b2Nvbm5lY3RfZGF0YSAqKWVtYWxsb2Moc2l6ZW9mKHBo
cF9ndGtfYXV0b2Nvbm5lY3RfZGF0YSkpOworCWFjX2RhdGEtPm1hcCA9IG1hcDsKKwlhY19kYXRh
LT5wYXNzX29iamVjdCA9IHBhc3Nfb2JqZWN0OworCWdsYWRlX3htbF9zaWduYWxfYXV0b2Nvbm5l
Y3RfZnVsbChHTEFERV9YTUwoUEhQX0dUS19HRVQodGhpc19wdHIpKSwKKwkJCQkJCQkJCSAgKEds
YWRlWE1MQ29ubmVjdEZ1bmMpZ2xhZGVfY29ubmVjdF9hdXRvLCBhY19kYXRhKTsKK30KKworUEhQ
X0ZVTkNUSU9OKGdsYWRlX3htbF9zaWduYWxfYXV0b2Nvbm5lY3QpCit7CisJZ2xhZGVfc2lnbmFs
X2F1dG9jb25uZWN0X2ltcGwoSU5URVJOQUxfRlVOQ1RJT05fUEFSQU1fUEFTU1RIUlUsIDEpOwor
fQorJSUKK292ZXJyaWRlIGdsYWRlX3htbF9zaWduYWxfYXV0b2Nvbm5lY3Rfb2JqZWN0IHNpZ25h
bF9hdXRvY29ubmVjdF9vYmplY3QgR2xhZGVYTUwKK1BIUF9GVU5DVElPTihnbGFkZV94bWxfc2ln
bmFsX2F1dG9jb25uZWN0X29iamVjdCkKK3sKKwlnbGFkZV9zaWduYWxfYXV0b2Nvbm5lY3RfaW1w
bChJTlRFUk5BTF9GVU5DVElPTl9QQVJBTV9QQVNTVEhSVSwgMCk7Cit9

--7eef5a31e7171ef5a7ea1492194209e7e669b4c1--