[PATCH 1/4] Creation of GdkEvent using new function vector->gdk-event.

Jan Nieuwenhuizen <[email protected]> Sat, 19 Jul 2014 15:40:59 +0200
Newsgroups gmane.lisp.guile.gtk
Message-ID <[email protected]>
CSogZ3RrL2dub21lL2d3L2dkay1zdXBwb3J0Lmg6CgkqIGd0ay9nbm9tZS9ndy9nZGstc3VwcG9y
dC5jICgidmVjdG9yLT5nZGstZXZlbnQiKTogTmV3IGZ1bmN0aW9uLgoKCSogZ3RrL2dub21lL292
ZXJyaWRlcy9nZGsuZGVmcyAodmVjdG9yLT5nZGstZXZlbnQpOiBEZWNsYXJlIG5ldwoJZnVuY3Rp
b24sIHJlbW92ZSBvcGFxdWUgYm94ZWQgZGVmaW5lIGZvciBHZGtFdmVudC4KCgkqIGd0ay9nbm9t
ZS9ndy9nZGstc3BlYy5zY20gKGluaXRpYWxpemUpOiBBZGQgY3VzdG9tIGJveGVkIHdyYXBwaW5n
Cglmb3IgR2RrRXZlbnQuCgoJKiBndGsvZ25vbWUvZ3RrL2dkay1ldmVudC5zY20gKGdkay1ldmVu
dDp0eXBlKQoJKGRlZmluZS1nZGstZXZlbnQtYWNjZXNzb3IpOiBSZW1vdmUgZXhwbGljaXQgLT4g
dmVjdG9yIGNvbnZlcnNpb24uCi0tLQogZ3RrL2dub21lL2d0ay9nZGstZXZlbnQuc2NtICB8ICAx
OSArKystLS0KIGd0ay9nbm9tZS9ndy9nZGstc3BlYy5zY20gICAgfCAgIDcgKysrCiBndGsvZ25v
bWUvZ3cvZ2RrLXN1cHBvcnQuYyAgIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystLS0KIGd0ay9nbm9tZS9ndy9nZGstc3VwcG9ydC5oICAgfCAgIDEgKwogZ3Rr
L2dub21lL292ZXJyaWRlcy9nZGsuZGVmcyB8ICAxNCArKystLQogNSBmaWxlcyBjaGFuZ2VkLCAx
NjQgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3RrL2dub21l
L2d0ay9nZGstZXZlbnQuc2NtIGIvZ3RrL2dub21lL2d0ay9nZGstZXZlbnQuc2NtCmluZGV4IDRk
NTE4NjEuLjQ0YTY2OGQgMTAwNjQ0Ci0tLSBhL2d0ay9nbm9tZS9ndGsvZ2RrLWV2ZW50LnNjbQor
KysgYi9ndGsvZ25vbWUvZ3RrL2dkay1ldmVudC5zY20KQEAgLTEsNCArMSw1IEBACiA7OyBndWls
ZS1nbm9tZQorOzsgQ29weXJpZ2h0IChDKSAyMDEzLDIwMTQgSmFuIE5pZXV3ZW5odWl6ZW4gPGph
bm5la2VAZ251Lm9yZz4KIDs7IENvcHlyaWdodCAoQykgMjAwMywyMDA0LDIwMDcgQW5keSBXaW5n
byA8d2luZ28gYXQgcG9ib3ggZG90IGNvbT4KIAogOzsgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAKQEAgLTMwLDIyICszMSwx
OCBAQAogICAjOnVzZS1tb2R1bGUgKG9vcCBnb29wcykpCiAKIChkZWZpbmUtcHVibGljIChnZGst
ZXZlbnQ6dHlwZSBldmVudCkKLSAgKGxldCAoKHZlY3RvciAoZ2RrLWV2ZW50LT52ZWN0b3IgZXZl
bnQpKSkKLSAgICAoaWYgdmVjdG9yCi0gICAgICAgIChnZW51bS0+c3ltYm9sCi0gICAgICAgICAo
bWFrZSA8Z2RrLWV2ZW50LXR5cGU+Ci0gICAgICAgICAgICM6dmFsdWUgKHZlY3Rvci1yZWYgdmVj
dG9yIDApKSkKLSAgICAgICAgI2YpKSkgOzsgI2YgY2FuIGhhcHBlbiBpZiBnZGstc3VwcG9ydC5j
IG5lZWRzIHNvbWUgd29yay4uLgorICAoaWYgZXZlbnQKKyAgICAgIChnZW51bS0+c3ltYm9sICh2
ZWN0b3ItcmVmIGV2ZW50IDApKQorICAgICAgI2YpKSA7OyAjZiBjYW4gaGFwcGVuIGlmIGdkay1z
dXBwb3J0LmMgbmVlZHMgc29tZSB3b3JrLi4uCiAKIChkZWZpbmUtbWFjcm8gKGRlZmluZS1nZGst
ZXZlbnQtYWNjZXNzb3IgdHlwZXMga2luZCBuYW1lIGluZGV4IGNvZGUpCiAgIChkZWZpbmUgKHN5
bWJvbC1hcHBlbmQgLiBhcmdzKQogICAgIChzdHJpbmctPnN5bWJvbCAoYXBwbHkgc3RyaW5nLWFw
cGVuZCAobWFwIHN5bWJvbC0+c3RyaW5nIGFyZ3MpKSkpCiAgIGAoZGVmaW5lLXB1YmxpYyAoLChz
eW1ib2wtYXBwZW5kICdnZGstZXZlbnQtIGtpbmQgKHN0cmluZy0+c3ltYm9sICI6IikgbmFtZSkg
ZXZlbnQpCi0gICAgIChsZXQgKCh2ZWN0b3IgKGdkay1ldmVudC0+dmVjdG9yIGV2ZW50KSkpCi0g
ICAgICAgKGNhc2UgKGdkay1ldmVudDp0eXBlIGV2ZW50KQotICAgICAgICAgKCx0eXBlcyAobGV0
ICgodmFsICh2ZWN0b3ItcmVmIHZlY3RvciAsaW5kZXgpKSkKLSAgICAgICAgICAgICAgICAgICAs
Y29kZSkpCi0gICAgICAgICAoZWxzZSAoZ3J1bnRpbWUtZXJyb3IgIkV2ZW50IG5vdCBvZiB0aGUg
cHJvcGVyIHR5cGU6IH5BIiBldmVudCkpKSkpKQorICAgICAoY2FzZSAoZ2RrLWV2ZW50OnR5cGUg
ZXZlbnQpCisgICAgICAgKCx0eXBlcyAobGV0ICgodmFsICh2ZWN0b3ItcmVmIGV2ZW50ICxpbmRl
eCkpKQorCQkgLGNvZGUpKQorICAgICAgIChlbHNlIChncnVudGltZS1lcnJvciAiRXZlbnQgbm90
IG9mIHRoZSBwcm9wZXIgdHlwZTogfkEiIGV2ZW50KSkpKSkKIAogKGRlZmluZS1nZGstZXZlbnQt
YWNjZXNzb3IgKGtleS1wcmVzcyBrZXktcmVsZWFzZSkga2V5IG1vZGlmaWVycyA0CiAgIChnZmxh
Z3MtPnN5bWJvbC1saXN0CmRpZmYgLS1naXQgYS9ndGsvZ25vbWUvZ3cvZ2RrLXNwZWMuc2NtIGIv
Z3RrL2dub21lL2d3L2dkay1zcGVjLnNjbQppbmRleCA5M2FlYjhkLi5jNTJmYjBiIDEwMDY0NAot
LS0gYS9ndGsvZ25vbWUvZ3cvZ2RrLXNwZWMuc2NtCisrKyBiL2d0ay9nbm9tZS9ndy9nZGstc3Bl
Yy5zY20KQEAgLTEzNCw2ICsxMzQsMTMgQEAKICAgIDs7IHVud3JhcAogICAgKGxpc3QgYy12YXIg
IiA9IHNjbV9zY21fdG9fZ2RrX2NvbG9yICgiIHNjbS12YXIgIik7XG4iKSkKIAorICAod3JhcC1j
dXN0b20tYm94ZWQhCisgICAiR2RrRXZlbnQiICJHREtfVFlQRV9FVkVOVCIKKyAgIDs7IHdyYXAK
KyAgIChsaXN0IHNjbS12YXIgIiA9ICIgYy12YXIgIiA/IGdka19ldmVudF90b192ZWN0b3IgKCIg
Yy12YXIgIikgOiBTQ01fQk9PTF9GO1xuIikKKyAgIDs7IHVud3JhcAorICAgKGxpc3QgYy12YXIg
IiA9IHZlY3Rvcl90b19nZGtfZXZlbnQgKCIgc2NtLXZhciAiKTtcbiIpKQorCiAgICh3cmFwLW9w
YXF1ZS1wb2ludGVyISB3cyAiR2RrUGl4YnVmRm9ybWF0KiIpCiAgICh3cmFwLW9wYXF1ZS1wb2lu
dGVyISB3cyAiR2RrQXRvbSIpCiAgIChhZGQtdHlwZS1ydWxlISB3cyAiR2RrQXRvbSoiICcoPGdk
ay1hdG9tPiBvdXQpKQpkaWZmIC0tZ2l0IGEvZ3RrL2dub21lL2d3L2dkay1zdXBwb3J0LmMgYi9n
dGsvZ25vbWUvZ3cvZ2RrLXN1cHBvcnQuYwppbmRleCA5MWMzZTZjLi5hMzgzODI5IDEwMDY0NAot
LS0gYS9ndGsvZ25vbWUvZ3cvZ2RrLXN1cHBvcnQuYworKysgYi9ndGsvZ25vbWUvZ3cvZ2RrLXN1
cHBvcnQuYwpAQCAtMSw0ICsxLDUgQEAKIC8qIGd1aWxlLWdub21lCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsMjAxNCBKYW4gTmlldXdlbmh1aXplbiA8amFubmVrZUBnbnUub3JnPgogICogQ29weXJp
Z2h0IChDKSAyMDAzLDIwMDQsMjAxMCBBbmR5IFdpbmdvIDx3aW5nbyBhdCBwb2JveCBkb3QgY29t
PgogICoKICAqIGdkay1zdXBwb3J0LmM6IFN1cHBvcnQgcm91dGluZXMgZm9yIHRoZSBHREsgd3Jh
cHBlcgpAQCAtMzAsNiArMzEsOSBAQAogU0NNCiBnZGtfZXZlbnRfdG9fdmVjdG9yIChHZGtFdmVu
dCAqZXZlbnQpCiB7CisgIFNDTSB0eXBlID0gc2NtX2NfbWFrZV9ndmFsdWUgKEdES19UWVBFX0VW
RU5UX1RZUEUpOworICBnX3ZhbHVlX3NldF9lbnVtIChzY21fY19ndmFsdWVfcGVla192YWx1ZSAo
dHlwZSksIGV2ZW50LT50eXBlKTsKKwogICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKICAgICBj
YXNlIEdES19LRVlfUFJFU1M6CiAgICAgY2FzZSBHREtfS0VZX1JFTEVBU0U6CkBAIC00MCw3ICs0
NCw3IEBAIGdka19ldmVudF90b192ZWN0b3IgKEdka0V2ZW50ICpldmVudCkKICAgICAgICAgICAg
IC8qIDggZmllbGRzICh3ZSBpZ25vcmUga2V5LnN0cmluZyBhbmQga2V5Lmxlbmd0aCkgKi8KICAg
ICAgICAgICAgIHJldCA9IHNjbV9jX21ha2VfdmVjdG9yICg4LCBTQ01fQk9PTF9GKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgVlNFVCAocmV0LCAwLCBzY21fZnJvbV9pbnQgKGV2ZW50LT50
eXBlKSk7CisgICAgICAgICAgICBWU0VUIChyZXQsIDAsIHR5cGUpOwogICAgICAgICAgICAgVlNF
VCAocmV0LCAxLCBzY21fY19ndHlwZV9pbnN0YW5jZV90b19zY20gKGVrZXkud2luZG93KSk7CiAg
ICAgICAgICAgICBWU0VUIChyZXQsIDIsIGVrZXkuc2VuZF9ldmVudCA/IFNDTV9CT09MX1QgOiBT
Q01fQk9PTF9GKTsKICAgICAgICAgICAgIFZTRVQgKHJldCwgMywgc2NtX2Zyb21fdWxvbmcgKGVr
ZXkudGltZSkpOwpAQCAtNjEsNyArNjUsNyBAQCBnZGtfZXZlbnRfdG9fdmVjdG9yIChHZGtFdmVu
dCAqZXZlbnQpCiAgICAgICAgICAgICAvKiAxMSBmaWVsZHMgKHdlIGlnbm9yZSBheGVzKSAqLwog
ICAgICAgICAgICAgcmV0ID0gc2NtX2NfbWFrZV92ZWN0b3IgKDExLCBTQ01fQk9PTF9GKTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgVlNFVCAocmV0LCAwLCBzY21fZnJvbV9pbnQgKGV2ZW50
LT50eXBlKSk7CisgICAgICAgICAgICBWU0VUIChyZXQsIDAsIHR5cGUpOwogICAgICAgICAgICAg
VlNFVCAocmV0LCAxLCBzY21fY19ndHlwZV9pbnN0YW5jZV90b19zY20gKGVidXR0b24ud2luZG93
KSk7CiAgICAgICAgICAgICBWU0VUIChyZXQsIDIsIGVidXR0b24uc2VuZF9ldmVudCA/IFNDTV9C
T09MX1QgOiBTQ01fQk9PTF9GKTsKICAgICAgICAgICAgIFZTRVQgKHJldCwgMywgc2NtX2Zyb21f
dWxvbmcgKGVidXR0b24udGltZSkpOwpAQCAtODMsNyArODcsNyBAQCBnZGtfZXZlbnRfdG9fdmVj
dG9yIChHZGtFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICAvKiAxMyBmaWVsZHMgKi8KICAgICAg
ICAgICAgIHJldCA9IHNjbV9jX21ha2VfdmVjdG9yICgxMywgU0NNX0JPT0xfRik7CiAKLSAgICAg
ICAgICAgIFZTRVQgKHJldCwgMCwgc2NtX2Zyb21faW50IChldmVudC0+dHlwZSkpOworICAgICAg
ICAgICAgVlNFVCAocmV0LCAwLCB0eXBlKTsKICAgICAgICAgICAgIFZTRVQgKHJldCwgMSwgc2Nt
X2NfZ3R5cGVfaW5zdGFuY2VfdG9fc2NtIChlY3Jvc3Npbmcud2luZG93KSk7CiAgICAgICAgICAg
ICBWU0VUIChyZXQsIDIsIGVjcm9zc2luZy5zZW5kX2V2ZW50ID8gU0NNX0JPT0xfVCA6IFNDTV9C
T09MX0YpOwogCSAgICAvKiBzdWJ3aW5kb3cgbWF5IGJlIE5VTEwuIC0tamNuICovCkBAIC0xMTMs
NyArMTE3LDcgQEAgZ2RrX2V2ZW50X3RvX3ZlY3RvciAoR2RrRXZlbnQgKmV2ZW50KQogICAgICAg
ICAgICAgLyogOCBmaWVsZHMgKi8KICAgICAgICAgICAgIHJldCA9IHNjbV9jX21ha2VfdmVjdG9y
ICg4LCBTQ01fQk9PTF9GKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgVlNFVCAocmV0LCAw
LCBzY21fZnJvbV9pbnQgKGV2ZW50LT50eXBlKSk7CisgICAgICAgICAgICBWU0VUIChyZXQsIDAs
IHR5cGUpOwogICAgICAgICAgICAgVlNFVCAocmV0LCAxLCBzY21fY19ndHlwZV9pbnN0YW5jZV90
b19zY20gKGVzZWxlY3Rpb24ud2luZG93KSk7CiAgICAgICAgICAgICBWU0VUIChyZXQsIDIsIGVz
ZWxlY3Rpb24uc2VuZF9ldmVudCA/IFNDTV9CT09MX1QgOiBTQ01fQk9PTF9GKTsKICAgICAgICAg
ICAgIFZTRVQgKHJldCwgMywgc2NtX3Rha2VfbG9jYWxlX3N0cmluZyAoZ2RrX2F0b21fbmFtZSAo
ZXNlbGVjdGlvbi5zZWxlY3Rpb24pKSk7CkBAIC0xMzIsNyArMTM2LDcgQEAgZ2RrX2V2ZW50X3Rv
X3ZlY3RvciAoR2RrRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgLyogMTEgZmllbGRzICh3ZSBp
Z25vcmUgYXhlcykgKi8KICAgICAgICAgICAgIHJldCA9IHNjbV9jX21ha2VfdmVjdG9yICgxMSwg
U0NNX0JPT0xfRik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFZTRVQgKHJldCwgMCwgc2Nt
X2Zyb21faW50IChldmVudC0+dHlwZSkpOworICAgICAgICAgICAgVlNFVCAocmV0LCAwLCB0eXBl
KTsKICAgICAgICAgICAgIFZTRVQgKHJldCwgMSwgc2NtX2NfZ3R5cGVfaW5zdGFuY2VfdG9fc2Nt
IChlbW90aW9uLndpbmRvdykpOwogICAgICAgICAgICAgVlNFVCAocmV0LCAyLCBlbW90aW9uLnNl
bmRfZXZlbnQgPyBTQ01fQk9PTF9UIDogU0NNX0JPT0xfRik7CiAgICAgICAgICAgICBWU0VUIChy
ZXQsIDMsIHNjbV9mcm9tX3Vsb25nIChlbW90aW9uLnRpbWUpKTsKQEAgLTE1NCw3ICsxNTgsNyBA
QCBnZGtfZXZlbnRfdG9fdmVjdG9yIChHZGtFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICAvKiA1
IGZpZWxkcyAqLwogICAgICAgICAgICAgcmV0ID0gc2NtX2NfbWFrZV92ZWN0b3IgKDUsIFNDTV9C
T09MX0YpOwogCi0gICAgICAgICAgICBWU0VUIChyZXQsIDAsIHNjbV9mcm9tX2ludCAoZXZlbnQt
PnR5cGUpKTsKKyAgICAgICAgICAgIFZTRVQgKHJldCwgMCwgdHlwZSk7CiAgICAgICAgICAgICBW
U0VUIChyZXQsIDEsIHNjbV9jX2d0eXBlX2luc3RhbmNlX3RvX3NjbSAoZXdpbnN0YXRlLndpbmRv
dykpOwogICAgICAgICAgICAgVlNFVCAocmV0LCAyLCBld2luc3RhdGUuc2VuZF9ldmVudCA/IFND
TV9CT09MX1QgOiBTQ01fQk9PTF9GKTsKICAgICAgICAgICAgIFZTRVQgKHJldCwgMywgc2NtX2Zy
b21faW50IChld2luc3RhdGUuY2hhbmdlZF9tYXNrKSk7CkBAIC0xNzAsNyArMTc0LDcgQEAgZ2Rr
X2V2ZW50X3RvX3ZlY3RvciAoR2RrRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgLyogNiBmaWVs
ZHMgKi8KICAgICAgICAgICAgIHJldCA9IHNjbV9jX21ha2VfdmVjdG9yICg2LCBTQ01fQk9PTF9G
KTsKIAotICAgICAgICAgICAgVlNFVCAocmV0LCAwLCBzY21fZnJvbV9pbnQgKGV2ZW50LT50eXBl
KSk7CisgICAgICAgICAgICBWU0VUIChyZXQsIDAsIHR5cGUpOwogICAgICAgICAgICAgVlNFVCAo
cmV0LCAxLCBzY21fY19ndHlwZV9pbnN0YW5jZV90b19zY20gKGV4cG9zZS53aW5kb3cpKTsKICAg
ICAgICAgICAgIFZTRVQgKHJldCwgMiwgU0NNX0JPT0wgKGV4cG9zZS5zZW5kX2V2ZW50KSk7CiAg
ICAgICAgICAgICBWU0VUIChyZXQsIDMsIHNjbV9nZGtfcmVjdGFuZ2xlX3RvX3NjbSAoJmV4cG9z
ZS5hcmVhKSk7CkBAIC0xODUsNiArMTg5LDEzNSBAQCBnZGtfZXZlbnRfdG9fdmVjdG9yIChHZGtF
dmVudCAqZXZlbnQpCiAgICAgfQogfQogCitHZGtFdmVudCoKK3ZlY3Rvcl90b19nZGtfZXZlbnQg
KFNDTSB2ZWMpCisjZGVmaW5lIEZVTkNfTkFNRSAidmVjdG9yLT5nZGstZXZlbnQiCit7CisgIFND
TSB0OworICBHZGtFdmVudCAqZXZlbnQgPSBOVUxMOworICBHZGtFdmVudFR5cGUgdHlwZSA9IEdE
S19FVkVOVF9MQVNUOworCisgIFNDTV9BU1NFUlQgKHNjbV92ZWN0b3JfcCAodmVjKSA9PSBTQ01f
Qk9PTF9ULCB2ZWMsIDEsIEZVTkNfTkFNRSk7CisgIFNDTV9BU1NFUlQgKHNjbV9jX3ZlY3Rvcl9s
ZW5ndGggKHZlYykgPiAwLCB2ZWMsIDEsIEZVTkNfTkFNRSk7CisgIHQgPSBzY21fY192ZWN0b3Jf
cmVmICh2ZWMsIDApOworCisgIGlmIChzY21fY19ndmFsdWVfaG9sZHMgKHQsIEdES19UWVBFX0VW
RU5UX1RZUEUpKQorICAgIHsKKyAgICAgIEdWYWx1ZSAqZ3ZhbHVlID0gc2NtX2NfZ3ZhbHVlX3Bl
ZWtfdmFsdWUgKHQpOworICAgICAgdHlwZSA9IGdfdmFsdWVfZ2V0X2VudW0gKGd2YWx1ZSk7Cisg
ICAgfQorICBlbHNlIGlmIChzY21faXNfc2lnbmVkX2ludGVnZXIgKHQsIDAsIEdES19FVkVOVF9M
QVNUKSkKKyAgICB0eXBlID0gKEdka0V2ZW50VHlwZSkgc2NtX3RvX2ludCAodCk7CisKKyAgaWYg
KHR5cGUgIT0gR0RLX0VWRU5UX0xBU1QpCisgICAgeworICAgICAgZXZlbnQgPSBnZGtfZXZlbnRf
bmV3ICh0eXBlKTsKKyAgICAgIGV2ZW50LT5hbnkuc2VuZF9ldmVudCA9IHNjbV9jX3ZlY3Rvcl9y
ZWYgKHZlYywgMikgPT0gU0NNX0JPT0xfVDsKKworICAgICAgU0NNIHcgPSBzY21fY192ZWN0b3Jf
cmVmICh2ZWMsIDEpOworICAgICAgZXZlbnQtPmFueS53aW5kb3cgPSBOVUxMOworICAgICAgaWYg
KHNjbV9jX2d0eXBlX2luc3RhbmNlX2lzX2FfcCAodywgR0RLX1RZUEVfV0lORE9XKSkKKwlldmVu
dC0+YW55LndpbmRvdworCSAgPSBzY21fY19zY21fdG9fZ3R5cGVfaW5zdGFuY2VfdHlwZWQgKHcs
IEdES19UWVBFX1dJTkRPVyk7CisKKyAgICAgIHN3aXRjaCAodHlwZSkKKwl7CisJY2FzZSBHREtf
TU9USU9OX05PVElGWToKKwkgIGV2ZW50LT5tb3Rpb24udGltZSA9IHNjbV90b191aW50MzIgKHNj
bV9jX3ZlY3Rvcl9yZWYgKHZlYywgMykpOworCSAgZXZlbnQtPm1vdGlvbi5heGVzID0gTlVMTDsK
KwkgIGV2ZW50LT5tb3Rpb24uc3RhdGUgPSBzY21fdG9fdWludCAoc2NtX2NfdmVjdG9yX3JlZiAo
dmVjLCA0KSk7CisJICBicmVhazsKKwkgIAorCWNhc2UgR0RLX0JVVFRPTl9QUkVTUzoKKwljYXNl
IEdES18yQlVUVE9OX1BSRVNTOgorCWNhc2UgR0RLXzNCVVRUT05fUFJFU1M6CisJY2FzZSBHREtf
QlVUVE9OX1JFTEVBU0U6CisJICBldmVudC0+YnV0dG9uLnRpbWUgPSBzY21fdG9fdWludDMyIChz
Y21fY192ZWN0b3JfcmVmICh2ZWMsIDMpKTsKKwkgIGV2ZW50LT5idXR0b24uYXhlcyA9IE5VTEw7
CisJICBldmVudC0+YnV0dG9uLnggPSBzY21fdG9fZG91YmxlIChzY21fY192ZWN0b3JfcmVmICh2
ZWMsIDQpKTsKKwkgIGV2ZW50LT5idXR0b24ueSA9IHNjbV90b19kb3VibGUgKHNjbV9jX3ZlY3Rv
cl9yZWYgKHZlYywgNSkpOworCSAgZXZlbnQtPmJ1dHRvbi5zdGF0ZSA9IHNjbV90b191aW50IChz
Y21fY192ZWN0b3JfcmVmICh2ZWMsIDYpKTsKKwkgIGV2ZW50LT5idXR0b24uYnV0dG9uID0gc2Nt
X3RvX3VpbnQgKHNjbV9jX3ZlY3Rvcl9yZWYgKHZlYywgNykpOworCSAgZXZlbnQtPmJ1dHRvbi5k
ZXZpY2UgPSBOVUxMOworCSAgZXZlbnQtPmJ1dHRvbi54X3Jvb3QgPSBzY21fdG9fZG91YmxlIChz
Y21fY192ZWN0b3JfcmVmICh2ZWMsIDkpKTsKKwkgIGV2ZW50LT5idXR0b24ueV9yb290ID0gc2Nt
X3RvX2RvdWJsZSAoc2NtX2NfdmVjdG9yX3JlZiAodmVjLCAxMCkpOworCSAgYnJlYWs7CisJICAK
KwljYXNlIEdES19TQ1JPTEw6CisJICBldmVudC0+c2Nyb2xsLnRpbWUgPSBzY21fdG9fdWludDMy
IChzY21fY192ZWN0b3JfcmVmICh2ZWMsIDMpKTsKKwkgIGV2ZW50LT5zY3JvbGwuc3RhdGUgPSBz
Y21fdG9fdWludCAoc2NtX2NfdmVjdG9yX3JlZiAodmVjLCA0KSk7CisJICBicmVhazsKKwkgIAor
CWNhc2UgR0RLX0VYUE9TRToKKwkgIHsKKwkgICAgU0NNIGFyZWEgPSBzY21fY192ZWN0b3JfcmVm
ICh2ZWMsIDMpOworCSAgICBpZiAoc2NtX2lzX3ZlY3RvciAoYXJlYSkpCisJICAgICAgZXZlbnQt
PmV4cG9zZS5hcmVhID0gKnNjbV9zY21fdG9fZ2RrX3JlY3RhbmdsZSAoYXJlYSk7CisJICAgIGV2
ZW50LT5leHBvc2UucmVnaW9uID0gMDsKKwkgICAgZXZlbnQtPmV4cG9zZS5jb3VudCA9IHNjbV90
b19pbnQgKHNjbV9jX3ZlY3Rvcl9yZWYgKHZlYywgNSkpOworCSAgICBicmVhazsKKwkgIH0KKwor
CWNhc2UgR0RLX0tFWV9QUkVTUzoKKwljYXNlIEdES19LRVlfUkVMRUFTRToKKwkgIGV2ZW50LT5r
ZXkudGltZSA9IHNjbV90b191aW50MzIgKHNjbV9jX3ZlY3Rvcl9yZWYgKHZlYywgMykpOworCSAg
ZXZlbnQtPmtleS5zdGF0ZSA9IHNjbV90b191aW50IChzY21fY192ZWN0b3JfcmVmICh2ZWMsIDQp
KTsKKwkgIGV2ZW50LT5rZXkua2V5dmFsID0gc2NtX3RvX2ludCAoc2NtX2NfdmVjdG9yX3JlZiAo
dmVjLCA1KSk7CisJICBldmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBzY21fdG9faW50IChz
Y21fY192ZWN0b3JfcmVmICh2ZWMsIDYpKTsKKwkgIGV2ZW50LT5rZXkuZ3JvdXAgPSBzY21fdG9f
dXNob3J0IChzY21fY192ZWN0b3JfcmVmICh2ZWMsIDcpKTsKKwkgIGJyZWFrOworCSAgCisJY2Fz
ZSBHREtfRU5URVJfTk9USUZZOgorCWNhc2UgR0RLX0xFQVZFX05PVElGWToKKwkgIGV2ZW50LT5j
cm9zc2luZy50aW1lID0gc2NtX3RvX3VpbnQzMiAoc2NtX2NfdmVjdG9yX3JlZiAodmVjLCAzKSk7
CisJICBldmVudC0+Y3Jvc3Npbmcuc3RhdGUgPSBzY21fdG9fdWludCAoc2NtX2NfdmVjdG9yX3Jl
ZiAodmVjLCA0KSk7CisJICBicmVhazsKKwkgIAorCWNhc2UgR0RLX1BST1BFUlRZX05PVElGWToK
KwkgIGV2ZW50LT5wcm9wZXJ0eS50aW1lID0gc2NtX3RvX3VpbnQzMiAoc2NtX2NfdmVjdG9yX3Jl
ZiAodmVjLCAzKSk7CisJICBldmVudC0+cHJvcGVydHkuc3RhdGUgPSBzY21fdG9fdWludCAoc2Nt
X2NfdmVjdG9yX3JlZiAodmVjLCA0KSk7CisJICBicmVhazsKKwkgIAorCWNhc2UgR0RLX1NFTEVD
VElPTl9DTEVBUjoKKwljYXNlIEdES19TRUxFQ1RJT05fUkVRVUVTVDoKKwljYXNlIEdES19TRUxF
Q1RJT05fTk9USUZZOgorCSAgZXZlbnQtPnNlbGVjdGlvbi50aW1lID0gc2NtX3RvX3VpbnQzMiAo
c2NtX2NfdmVjdG9yX3JlZiAodmVjLCAzKSk7CisJICBicmVhazsKKwkgIAorCWNhc2UgR0RLX1BS
T1hJTUlUWV9JTjoKKwljYXNlIEdES19QUk9YSU1JVFlfT1VUOgorCSAgZXZlbnQtPnByb3hpbWl0
eS50aW1lID0gc2NtX3RvX3VpbnQzMiAoc2NtX2NfdmVjdG9yX3JlZiAodmVjLCAzKSk7CisJICBi
cmVhazsKKwkgIAorCWNhc2UgR0RLX0RSQUdfRU5URVI6CisJY2FzZSBHREtfRFJBR19MRUFWRToK
KwljYXNlIEdES19EUkFHX01PVElPTjoKKwljYXNlIEdES19EUkFHX1NUQVRVUzoKKwljYXNlIEdE
S19EUk9QX1NUQVJUOgorCWNhc2UgR0RLX0RST1BfRklOSVNIRUQ6CisJICBldmVudC0+ZG5kLnRp
bWUgPSBzY21fdG9fdWludDMyIChzY21fY192ZWN0b3JfcmVmICh2ZWMsIDMpKTsKKwkgIGJyZWFr
OworCSAgCisJY2FzZSBHREtfRk9DVVNfQ0hBTkdFOgorCWNhc2UgR0RLX0NPTkZJR1VSRToKKwlj
YXNlIEdES19NQVA6CisJY2FzZSBHREtfVU5NQVA6CisJY2FzZSBHREtfQ0xJRU5UX0VWRU5UOgor
CWNhc2UgR0RLX1ZJU0lCSUxJVFlfTk9USUZZOgorCWNhc2UgR0RLX05PX0VYUE9TRToKKwljYXNl
IEdES19ERUxFVEU6CisJY2FzZSBHREtfREVTVFJPWToKKwlkZWZhdWx0OgorCSAgZ19wcmludCAo
IkNyZWF0aW9uIG9mIGV2ZW50cyBvZiB0eXBlICVkIGFyZSBub3QgaW1wbGVtZW50ZWQuXG4iCisJ
CSAgICJIb3cgYWJvdXQgZG9pbmcgaXQgeW91cnNlbGY/XG4iLCB0eXBlKTsKKwkgIHJldHVybiBO
VUxMOworCX0KKyAgICB9CisKKyAgcmV0dXJuIGV2ZW50OworfQorI3VuZGVmIEZVTkNfTkFNRQor
CiBTQ00KIHNjbV9nZGtfcmVjdGFuZ2xlX3RvX3NjbSAoR2RrUmVjdGFuZ2xlICpyZWN0KQogewpk
aWZmIC0tZ2l0IGEvZ3RrL2dub21lL2d3L2dkay1zdXBwb3J0LmggYi9ndGsvZ25vbWUvZ3cvZ2Rr
LXN1cHBvcnQuaAppbmRleCBmMTIyMzZhLi5hYWYxNTFmIDEwMDY0NAotLS0gYS9ndGsvZ25vbWUv
Z3cvZ2RrLXN1cHBvcnQuaAorKysgYi9ndGsvZ25vbWUvZ3cvZ2RrLXN1cHBvcnQuaApAQCAtMjUs
NiArMjUsNyBAQAogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogU0NNIGdka19ldmVudF90b192ZWN0
b3IgKEdka0V2ZW50ICpldmVudCk7CitHZGtFdmVudCogdmVjdG9yX3RvX2dka19ldmVudCAoU0NN
IHZlYyk7CiAKIFNDTSBzY21fZ2RrX3JlY3RhbmdsZV90b19zY20gKEdka1JlY3RhbmdsZSAqcmVj
dCk7CiBHZGtSZWN0YW5nbGUqIHNjbV9zY21fdG9fZ2RrX3JlY3RhbmdsZSAoU0NNIHNjbSk7CmRp
ZmYgLS1naXQgYS9ndGsvZ25vbWUvb3ZlcnJpZGVzL2dkay5kZWZzIGIvZ3RrL2dub21lL292ZXJy
aWRlcy9nZGsuZGVmcwppbmRleCBhOTk1ZmMyLi4xMDk4NTAwIDEwMDY0NAotLS0gYS9ndGsvZ25v
bWUvb3ZlcnJpZGVzL2dkay5kZWZzCisrKyBiL2d0ay9nbm9tZS9vdmVycmlkZXMvZ2RrLmRlZnMK
QEAgLTEsNSArMSw2IEBACiA7OyAtKi0gc2NoZW1lIC0qLQogOzsgZ3VpbGUtZ25vbWUKKzs7IENv
cHlyaWdodCAoQykgMjAxMywyMDE0IEphbiBOaWV1d2VuaHVpemVuIDxqYW5uZWtlQGdudS5vcmc+
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMDUgQW5kcmVhcyBSb3R0bWFubiA8cm90dHkgYXQgZGViaWFu
IGRvdCBvcmc+CiA7OyBDb3B5cmlnaHQgKEMpIDIwMDMsMjAwNCBBbmR5IFdpbmdvIDx3aW5nbyBh
dCBwb2JveCBkb3QgY29tPgogOzsKQEAgLTI4LDEyICsyOSw2IEBACiAKIDs7IHN0ZWFsaW5nIG1v
c3Qgb2YgdGhlc2UgZnJvbSBweXRob24tZ3RrMgogCi0oZGVmaW5lLWJveGVkIEV2ZW50Ci0gIChp
bi1tb2R1bGUgIkdkayIpCi0gIChjLW5hbWUgIkdka0V2ZW50IikKLSAgKGd0eXBlLWlkICJHREtf
VFlQRV9FVkVOVCIpCi0pCi0KIChkZWZpbmUtYm94ZWQgQ3Vyc29yCiAgIChpbi1tb2R1bGUgIkdk
ayIpCiAgIChjLW5hbWUgIkdka0N1cnNvciIpCkBAIC04Niw2ICs4MSwxMyBAQAogICAobGVhdmUt
Z3VpbGUtbW9kZSAjZikKICAgKHBhcmFtZXRlcnMgJygiR2RrRXZlbnQqIiAiZXZlbnQiKSkpCiAK
KyhkZWZpbmUtZnVuY3Rpb24gdmVjdG9yLT5nZGstZXZlbnQKKyAgKGMtbmFtZSAidmVjdG9yX3Rv
X2dka19ldmVudCIpCisgIChvdmVycmlkZXMgInZlY3Rvci0+Z2RrLWV2ZW50IikKKyAgKHJldHVy
bi10eXBlICJHZGtFdmVudCoiKQorICAobGVhdmUtZ3VpbGUtbW9kZSAjZikKKyAgKHBhcmFtZXRl
cnMgJygiU0NNIiAiZXZlbnQtdmVjdG9yIikpKQorCiAoZGVmaW5lLW1ldGhvZCBzZXRfaWNvbgog
ICAob2Ytb2JqZWN0ICJHZGtXaW5kb3ciKQogICAoYy1uYW1lICJnZGtfd2luZG93X3NldF9pY29u
IikKLS0gCkphbiBOaWV1d2VuaHVpemVuIDxqYW5uZWtlQGdudS5vcmc+IHwgR05VIExpbHlQb25k
IGh0dHA6Ly9saWx5cG9uZC5vcmcKRnJlZWxhbmNlIElUIGh0dHA6Ly9Kb3lvZlNvdXJjZS5jb20g
fCBBdmF0YXLCriAgaHR0cDovL0F2YXRhckFjYWRlbXkubmwgIAoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmd1aWxlLWd0ay1nZW5lcmFsIG1haWxpbmcg
bGlzdApndWlsZS1ndGstZ2VuZXJhbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL2d1aWxlLWd0ay1nZW5lcmFsCg==