/pidgin/main: 671723ed2a42: Merged in CMaiku/pidgin (pull reques...

Gary Kramlich <[email protected]> Wed, 19 Oct 2016 14:50:57 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Q2hhbmdlc2V0OiA2NzE3MjNlZDJhNDI2MWViNmFjMDQ3NGVlYzdhYWIxNmJiYTVmNzkyCkF1dGhv
cjoJIEdhcnkgS3JhbWxpY2ggPGdyaW1AcmVhcGVyd29ybGQuY29tPgpEYXRlOgkgMjAxNi0xMC0x
OSAxODo1MCArMDAwMApCcmFuY2g6CSBkZWZhdWx0ClVSTDogaHR0cHM6Ly9oZy5waWRnaW4uaW0v
cGlkZ2luL21haW4vcmV2LzY3MTcyM2VkMmE0MgoKRGVzY3JpcHRpb246CgpNZXJnZWQgaW4gQ01h
aWt1L3BpZGdpbiAocHVsbCByZXF1ZXN0ICMxMjcpCgpNYWtlIGxpYnNlY3JldCBrZXlyaW5nIHVz
YWJsZQoKZGlmZnN0YXQ6CgogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAzNCArKy0KIGxpYnB1cnBsZS9wbHVnaW5zL2tleXJpbmdzL3NlY3JldHNlcnZpY2Uu
YyB8ICAyMTYgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx
NDEgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZnMgKHRydW5jYXRlZCBmcm9t
IDM3OSB0byAzMDAgbGluZXMpOgoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3Vy
ZS5hYwotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0xNTIyLDE5ICsx
NTIyLDI5IEBAIGRubCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIGRubCAj
IENoZWNrIGZvciBTZWNyZXQgU2VydmljZSBoZWFkZXJzCiBkbmwgIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAot
IyBkaXNhYmxlZCAtIHNlZSBzZWNyZXRzZXJ2aWNlLmMKLSNBQ19BUkdfRU5BQkxFKGxpYnNlY3Jl
dCwgW0FDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlic2VjcmV0XSwgW2VuYWJsZSBTZWNyZXQg
U2VydmljZSBzdXBwb3J0XSldLCBlbmFibGVfc2VjcmV0X3NlcnZpY2U9bm8sIGVuYWJsZV9zZWNy
ZXRfc2VydmljZT15ZXMpCitBQ19BUkdfRU5BQkxFKGxpYnNlY3JldCwKKwlbQUNfSEVMUF9TVFJJ
TkcoWy0tZGlzYWJsZS1saWJzZWNyZXRdLCBbZW5hYmxlIFNlY3JldCBTZXJ2aWNlIHN1cHBvcnRd
KV0sCisJZW5hYmxlX3NlY3JldF9zZXJ2aWNlPSIkZW5hYmxldmFsIiwgZW5hYmxlX3NlY3JldF9z
ZXJ2aWNlPSIkaXNfbm90X3dpbjMyIikKIAotI2lmIHRlc3QgIngkZW5hYmxlX3NlY3JldF9zZXJ2
aWNlIiA9ICJ4eWVzIiA7IHRoZW4KLSMJUEtHX0NIRUNLX01PRFVMRVMoU0VDUkVUU0VSVklDRSwg
W2xpYnNlY3JldC0xXSwgWwotIwkJQUNfU1VCU1QoU0VDUkVUU0VSVklDRV9DRkxBR1MpCi0jCQlB
Q19TVUJTVChTRUNSRVRTRVJWSUNFX0xJQlMpCi0jCQlBQ19ERUZJTkUoSEFWRV9TRUNSRVRTRVJW
SUNFLCAxLCBbRGVmaW5lIGlmIHdlIGhhdmUgU2VjcmV0IFNlcnZpY2UuXSkKLSMJXSkKLSNmaQor
aWYgdGVzdCAieCRlbmFibGVfc2VjcmV0X3NlcnZpY2UiID0gInh5ZXMiIDsgdGhlbgorCVBLR19D
SEVDS19NT0RVTEVTKFNFQ1JFVFNFUlZJQ0UsIFtsaWJzZWNyZXQtMV0sIFsKKwkJQUNfU1VCU1Qo
U0VDUkVUU0VSVklDRV9DRkxBR1MpCisJCUFDX1NVQlNUKFNFQ1JFVFNFUlZJQ0VfTElCUykKKwkJ
QUNfREVGSU5FKEhBVkVfU0VDUkVUU0VSVklDRSwgMSwgW0RlZmluZSBpZiB3ZSBoYXZlIFNlY3Jl
dCBTZXJ2aWNlLl0pCisJXSwgWworCQlBQ19NU0dfUkVTVUxUKG5vKQorCQllbmFibGVfc2VjcmV0
X3NlcnZpY2U9Im5vIgorCQlpZiB0ZXN0ICJ4JGZvcmNlX2RlcHMiID0gInh5ZXMiIDsgdGhlbgor
CQkJQUNfTVNHX0VSUk9SKFsKK0xpYnNlY3JldCBkZXZlbG9wbWVudCBoZWFkZXJzIG5vdCBmb3Vu
ZAorVXNlIC0tZGlzYWJsZS1saWJzZWNyZXQgaWYgeW91IGRvIG5vdCBuZWVkIGl0LgorXSkKKwkJ
ZmkKKwldKQogCi0jQU1fQ09ORElUSU9OQUwoRU5BQkxFX1NFQ1JFVFNFUlZJQ0UsIHRlc3QgIngk
ZW5hYmxlX3NlY3JldF9zZXJ2aWNlIiA9ICJ4eWVzIikKLUFNX0NPTkRJVElPTkFMKEVOQUJMRV9T
RUNSRVRTRVJWSUNFLCB0ZXN0ICJ4MSIgPSAieDIiKQorZmkKKworQU1fQ09ORElUSU9OQUwoRU5B
QkxFX1NFQ1JFVFNFUlZJQ0UsIHRlc3QgIngkZW5hYmxlX3NlY3JldF9zZXJ2aWNlIiA9ICJ4eWVz
IikKIAogZG5sICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiBkbmwgIyBDaGVjayBmb3IgR05PTUUgS2V5cmluZyBo
ZWFkZXJzCkBAIC0yMjU0LDcgKzIyNjQsNyBAQCBlY2hvIEJ1aWxkIFVuaXR5IGludGVncmF0aW9u
IHBsdWdpbi46ICRlCiBlY2hvCiBlY2hvIEJ1aWxkIHdpdGggR05PTUUgS2V5cmluZy4uLi4uLiA6
ICRlbmFibGVfZ25vbWVfa2V5cmluZwogZWNobyBCdWlsZCB3aXRoIEtXYWxsZXQuLi4uLi4uLi4u
Li4gOiAkZW5hYmxlX2t3YWxsZXQKLSNlY2hvIEJ1aWxkIHdpdGggU2VjcmV0IFNlcnZpY2UuLi4u
LiA6ICRlbmFibGVfc2VjcmV0X3NlcnZpY2UKK2VjaG8gQnVpbGQgd2l0aCBTZWNyZXQgU2Vydmlj
ZS4uLi4uIDogJGVuYWJsZV9zZWNyZXRfc2VydmljZQogZWNobwogZWNobyBCdWlsZCB3aXRoIHBs
dWdpbiBzdXBwb3J0Li4uLi4gOiAkZW5hYmxlX3BsdWdpbnMKIGVjaG8gRW5hYmxlIEludHJvc3Bl
Y3Rpb24uLi4uLi4uLi4uLjogJGVuYWJsZV9pbnRyb3NwZWN0aW9uCmRpZmYgLS1naXQgYS9saWJw
dXJwbGUvcGx1Z2lucy9rZXlyaW5ncy9zZWNyZXRzZXJ2aWNlLmMgYi9saWJwdXJwbGUvcGx1Z2lu
cy9rZXlyaW5ncy9zZWNyZXRzZXJ2aWNlLmMKLS0tIGEvbGlicHVycGxlL3BsdWdpbnMva2V5cmlu
Z3Mvc2VjcmV0c2VydmljZS5jCisrKyBiL2xpYnB1cnBsZS9wbHVnaW5zL2tleXJpbmdzL3NlY3Jl
dHNlcnZpY2UuYwpAQCAtMjEsMTcgKzIxLDE1IEBACiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTExLTEzMDEgVVNBCiAg
Ki8KIAotI2Vycm9yICJUaGlzIGtleXJpbmcgbmVlZHMgc29tZSBtb3JlIHdvcmsgKHNlZSBUT0RP
KSIKLQogLyogVE9ETwogICoKLSAqIFRoaXMga2V5cmluZyBuZWVkcyBzb21lIG1vcmUgd29yaywg
c28gaXQgd2lsbCBiZSBkaXNhYmxlZCB1bnRpbCBpdHMgcXVhbGl0eQotICogd2FzIHJhaXNlZC4g
U29tZSBvZiB0aGUgcGFpbiBwb2ludHM6Ci0gKiAgLSB0aHJvd3MgYSBsb3Qgb2YgZ193YXJuaW5n
cwotICogIC0gaXQgZG9lc24ndCBub3RpZnkgYWJvdXQgc29tZSBiYWNrZW5kIGZhdWx0cyAobGlr
ZSBhY2Nlc3MgZGVuaWVkKSwgc29tZSBvZgotICogICAgdGhlbSBhcmUgbm90IGhhbmRsZWQgYXQg
YWxsCi0gKiAgLSBpdCBjb3VsZCB1c2UgbGlic2VjcmV0J3MgQ29tcGxldGUgQVBJCi0gKiAgLSBj
b2RlIGZvcm1hdHRpbmcgY291bGQgYmUgYmV0dGVyCisgKiBUaGlzIGtleXJpbmcgbm93IHdvcmtz
IChhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcpLCBidXQgdGhlcmUgYXJlCisgKiBzb21lIGlu
Y29udmVuaWVudCBlZGdlIGNhc2VzLiBXaGVuIGxvb2tpbmcgdXAgcGFzc3dvcmRzLCBsaWJzZWNy
ZXQKKyAqIGRvZXNuJ3QgZXJyb3IgaWYgdGhlIGtleXJpbmcgaXMgbG9ja2VkLiBUaGVyZWZvcmUs
IGl0IGFwcGVhcnMgdG8KKyAqIHRoaXMgcGx1Z2luIHRoYXQgdGhlcmUncyBubyBzdG9yZWQgcGFz
c3dvcmQuIGxpYnB1cnBsZSBzZWVtcyB0bworICogaGFuZGxlIHRoaXMgYXMgZ3JhY2VmdWxseSBh
cyBwb3NzaWJsZSwgYnV0IGl0J3Mgc3RpbGwgaW5jb252ZW5pZW50LgorICogVGhpcyBwbHVnaW4g
Y291bGQgcG9zc2libHkgYmUgcG9ydGVkIHRvIHVzZSBsaWJzZWNyZXQncyAiQ29tcGxldGUgQVBJ
IgorICogdG8gcmVzb2x2ZSB0aGlzIGlmIGRlc2lyZWQuCiAgKi8KIAogI2luY2x1ZGUgImludGVy
bmFsLmgiCkBAIC01Myw2ICs1MSw3IEBACiAjZGVmaW5lIFNFQ1JFVFNFUlZJQ0VfRE9NQUlOICAg
ICAgKGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFNFQ1JFVFNFUlZJQ0VfSUQpKQogCiBzdGF0
aWMgUHVycGxlS2V5cmluZyAqa2V5cmluZ19oYW5kbGVyID0gTlVMTDsKK3N0YXRpYyBHQ2FuY2Vs
bGFibGUgKmtleXJpbmdfY2FuY2VsbGFibGUgPSBOVUxMOwogCiBzdGF0aWMgY29uc3QgU2VjcmV0
U2NoZW1hIHB1cnBsZV9zY2hlbWEgPSB7CiAJImltLnBpZGdpbi5QdXJwbGUiLCBTRUNSRVRfU0NI
RU1BX05PTkUsCkBAIC03OCw2ICs3Nyw2MiBAQCBzdHJ1Y3QgX0luZm9TdG9yYWdlCiAvKiAgICAg
S2V5cmluZyBpbnRlcmZhY2UgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgdm9pZAorc3NfZ19l
cnJvcl90b19rZXlyaW5nX2Vycm9yKEdFcnJvciAqKmVycm9yLCBQdXJwbGVBY2NvdW50ICphY2Nv
dW50KQoreworCUdFcnJvciAqb2xkX2Vycm9yOworCUdFcnJvciAqbmV3X2Vycm9yID0gTlVMTDsK
KworCWdfcmV0dXJuX2lmX2ZhaWwoZXJyb3IgIT0gTlVMTCk7CisKKwlvbGRfZXJyb3IgPSAqZXJy
b3I7CisKKwlpZiAoZ19lcnJvcl9tYXRjaGVzKG9sZF9lcnJvciwgR19JT19FUlJPUiwgR19JT19F
UlJPUl9DQU5DRUxMRUQpKSB7CisJCW5ld19lcnJvciA9IGdfZXJyb3JfbmV3KFBVUlBMRV9LRVlS
SU5HX0VSUk9SLAorCQkJUFVSUExFX0tFWVJJTkdfRVJST1JfQ0FOQ0VMTEVELAorCQkJXygiT3Bl
cmF0aW9uIGNhbmNlbGxlZC4iKSk7CisJfSBlbHNlIGlmIChnX2Vycm9yX21hdGNoZXMob2xkX2Vy
cm9yLCBHX0RCVVNfRVJST1IsCisJCQkJR19EQlVTX0VSUk9SX1NQQVdOX1NFUlZJQ0VfTk9UX0ZP
VU5EKSB8fAorCQkJZ19lcnJvcl9tYXRjaGVzKG9sZF9lcnJvciwgR19EQlVTX0VSUk9SLAorCQkJ
CUdfREJVU19FUlJPUl9JT19FUlJPUikpIHsKKwkJcHVycGxlX2RlYnVnX2luZm8oImtleXJpbmct
bGlic2VjcmV0IiwKKwkJCSJGYWlsZWQgdG8gY29tbXVuaWNhdGUgd2l0aCBTZWNyZXQgIgorCQkJ
IlNlcnZpY2UgKGFjY291bnQ6ICVzICglcykpLlxuIiwKKwkJCXB1cnBsZV9hY2NvdW50X2dldF91
c2VybmFtZShhY2NvdW50KSwKKwkJCXB1cnBsZV9hY2NvdW50X2dldF9wcm90b2NvbF9pZChhY2Nv
dW50KSk7CisJCW5ld19lcnJvciA9IGdfZXJyb3JfbmV3KFBVUlBMRV9LRVlSSU5HX0VSUk9SLAor
CQkJUFVSUExFX0tFWVJJTkdfRVJST1JfQkFDS0VOREZBSUwsCisJCQkiRmFpbGVkIHRvIGNvbW11
bmljYXRlIHdpdGggU2VjcmV0ICIKKwkJCSJTZXJ2aWNlIChhY2NvdW50OiAlcykuIiwKKwkJCXB1
cnBsZV9hY2NvdW50X2dldF91c2VybmFtZShhY2NvdW50KSk7CisJfSBlbHNlIGlmIChnX2Vycm9y
X21hdGNoZXMob2xkX2Vycm9yLCBTRUNSRVRfRVJST1IsCisJCQlTRUNSRVRfRVJST1JfSVNfTE9D
S0VEKSkgeworCQlwdXJwbGVfZGVidWdfaW5mbygia2V5cmluZy1saWJzZWNyZXQiLAorCQkJIlNl
Y3JldCBTZXJ2aWNlIGlzIGxvY2tlZCAoYWNjb3VudDogJXMgKCVzKSkuXG4iLAorCQkJcHVycGxl
X2FjY291bnRfZ2V0X3VzZXJuYW1lKGFjY291bnQpLAorCQkJcHVycGxlX2FjY291bnRfZ2V0X3By
b3RvY29sX2lkKGFjY291bnQpKTsKKwkJbmV3X2Vycm9yID0gZ19lcnJvcl9uZXcoUFVSUExFX0tF
WVJJTkdfRVJST1IsCisJCQlQVVJQTEVfS0VZUklOR19FUlJPUl9BQ0NFU1NERU5JRUQsCisJCQki
U2VjcmV0IFNlcnZpY2UgaXMgbG9ja2VkIChhY2NvdW50OiAlcykuIiwKKwkJCXB1cnBsZV9hY2Nv
dW50X2dldF91c2VybmFtZShhY2NvdW50KSk7CisJfSBlbHNlIHsKKwkJcHVycGxlX2RlYnVnX2Vy
cm9yKCJrZXlyaW5nLWxpYnNlY3JldCIsCisJCQkiVW5rbm93biBlcnJvciAoYWNjb3VudDogJXMg
KCVzKSwgIgorCQkJImRvbWFpbjogJXMsIGNvZGU6ICVkKTogJXMuXG4iLAorCQkJcHVycGxlX2Fj
Y291bnRfZ2V0X3VzZXJuYW1lKGFjY291bnQpLAorCQkJcHVycGxlX2FjY291bnRfZ2V0X3Byb3Rv
Y29sX2lkKGFjY291bnQpLAorCQkJZ19xdWFya190b19zdHJpbmcob2xkX2Vycm9yLT5kb21haW4p
LAorCQkJb2xkX2Vycm9yLT5jb2RlLCBvbGRfZXJyb3ItPm1lc3NhZ2UpOworCQluZXdfZXJyb3Ig
PSBnX2Vycm9yX25ldyhQVVJQTEVfS0VZUklOR19FUlJPUiwKKwkJCVBVUlBMRV9LRVlSSU5HX0VS
Uk9SX0JBQ0tFTkRGQUlMLAorCQkJIlVua25vd24gZXJyb3IgKGFjY291bnQ6ICVzKS4iLAorCQkJ
cHVycGxlX2FjY291bnRfZ2V0X3VzZXJuYW1lKGFjY291bnQpKTsKKwl9CisKKwlnX2NsZWFyX2Vy
cm9yKGVycm9yKTsKKwlnX3Byb3BhZ2F0ZV9lcnJvcihlcnJvciwgbmV3X2Vycm9yKTsKK30KKwor
c3RhdGljIHZvaWQKIHNzX3JlYWRfY29udGludWUoR09iamVjdCAqb2JqZWN0LCBHQXN5bmNSZXN1
bHQgKnJlc3VsdCwgZ3BvaW50ZXIgZGF0YSkKIHsKIAlJbmZvU3RvcmFnZSAqc3RvcmFnZSA9IGRh
dGE7CkBAIC04OSw1MyArMTQ0LDE5IEBAIHNzX3JlYWRfY29udGludWUoR09iamVjdCAqb2JqZWN0
LCBHQXN5bmMKIAlwYXNzd29yZCA9IHNlY3JldF9wYXNzd29yZF9sb29rdXBfZmluaXNoKHJlc3Vs
dCwgJmVycm9yKTsKIAogCWlmIChlcnJvciAhPSBOVUxMKSB7Ci0JCWludCBjb2RlID0gZXJyb3It
PmNvZGU7Ci0KLQkJc3dpdGNoIChjb2RlKSB7Ci0JCQljYXNlIEdfREJVU19FUlJPUl9TUEFXTl9T
RVJWSUNFX05PVF9GT1VORDoKLQkJCWNhc2UgR19EQlVTX0VSUk9SX0lPX0VSUk9SOgotCQkJCWVy
cm9yID0gZ19lcnJvcl9uZXcoUFVSUExFX0tFWVJJTkdfRVJST1IsCi0JCQkJCVBVUlBMRV9LRVlS
SU5HX0VSUk9SX0JBQ0tFTkRGQUlMLAotCQkJCQkiRmFpbGVkIHRvIGNvbW11bmljYXRlIHdpdGgg
U2VjcmV0ICIKLQkJCQkJIlNlcnZpY2UgKGFjY291bnQgOiAlcykuIiwKLQkJCQkJcHVycGxlX2Fj
Y291bnRfZ2V0X3VzZXJuYW1lKGFjY291bnQpKTsKLQkJCQlpZiAoY2IgIT0gTlVMTCkKLQkJCQkJ
Y2IoYWNjb3VudCwgTlVMTCwgZXJyb3IsIHN0b3JhZ2UtPnVzZXJfZGF0YSk7Ci0JCQkJZ19lcnJv
cl9mcmVlKGVycm9yKTsKLQkJCQlicmVhazsKLQotCQkJZGVmYXVsdDoKLQkJCQlwdXJwbGVfZGVi
dWdfZXJyb3IoImtleXJpbmctbGlic2VjcmV0IiwKLQkJCQkJIlVua25vd24gZXJyb3IgKGFjY291
bnQ6ICVzICglcyksICIKLQkJCQkJImRvbWFpbjogJXMsIGNvZGU6ICVkKTogJXMuXG4iLAotCQkJ
CQlwdXJwbGVfYWNjb3VudF9nZXRfdXNlcm5hbWUoYWNjb3VudCksCi0JCQkJCXB1cnBsZV9hY2Nv
dW50X2dldF9wcm90b2NvbF9pZChhY2NvdW50KSwKLQkJCQkJZ19xdWFya190b19zdHJpbmcoZXJy
b3ItPmRvbWFpbiksIGNvZGUsCi0JCQkJCQllcnJvci0+bWVzc2FnZSk7Ci0JCQkJZXJyb3IgPSBn
X2Vycm9yX25ldyhQVVJQTEVfS0VZUklOR19FUlJPUiwKLQkJCQkJUFVSUExFX0tFWVJJTkdfRVJS
T1JfQkFDS0VOREZBSUwsCi0JCQkJCSJVbmtub3duIGVycm9yIChhY2NvdW50IDogJXMpLiIsCi0J
CQkJCXB1cnBsZV9hY2NvdW50X2dldF91c2VybmFtZShhY2NvdW50KSk7Ci0JCQkJaWYgKGNiICE9
IE5VTEwpCi0JCQkJCWNiKGFjY291bnQsIE5VTEwsIGVycm9yLCBzdG9yYWdlLT51c2VyX2RhdGEp
OwotCQkJCWdfZXJyb3JfZnJlZShlcnJvcik7Ci0JCQkJYnJlYWs7Ci0JCX0KLQorCQlzc19nX2Vy
cm9yX3RvX2tleXJpbmdfZXJyb3IoJmVycm9yLCBhY2NvdW50KTsKIAl9IGVsc2UgaWYgKHBhc3N3
b3JkID09IE5VTEwpIHsKIAkJZXJyb3IgPSBnX2Vycm9yX25ldyhQVVJQTEVfS0VZUklOR19FUlJP
UiwKIAkJCVBVUlBMRV9LRVlSSU5HX0VSUk9SX05PUEFTU1dPUkQsCiAJCQkiTm8gcGFzc3dvcmQg
Zm91bmQgZm9yIGFjY291bnQ6ICVzIiwKIAkJCXB1cnBsZV9hY2NvdW50X2dldF91c2VybmFtZShh
Y2NvdW50KSk7Ci0JCWlmIChjYiAhPSBOVUxMKQotCQkJY2IoYWNjb3VudCwgTlVMTCwgZXJyb3Is
IHN0b3JhZ2UtPnVzZXJfZGF0YSk7Ci0JCWdfZXJyb3JfZnJlZShlcnJvcik7Ci0KLQl9IGVsc2Ug
ewotCQlpZiAoY2IgIT0gTlVMTCkKLQkJCWNiKGFjY291bnQsIHBhc3N3b3JkLCBOVUxMLCBzdG9y
YWdlLT51c2VyX2RhdGEpOwogCX0KIAorCWlmIChjYiAhPSBOVUxMKSB7CisJCWNiKGFjY291bnQs
IHBhc3N3b3JkLCBlcnJvciwgc3RvcmFnZS0+dXNlcl9kYXRhKTsKKwl9CisKKwlnX2NsZWFyX2Vy
cm9yKCZlcnJvcik7CiAJZ19mcmVlKHN0b3JhZ2UpOwogfQogCkBAIC0xNDgsNzQgKzE2OSw1NyBA
QCBzc19yZWFkKFB1cnBsZUFjY291bnQgKmFjY291bnQsIFB1cnBsZUtlCiAJc3RvcmFnZS0+Y2Ig
PSBjYjsKIAlzdG9yYWdlLT51c2VyX2RhdGEgPSBkYXRhOwogCi0Jc2VjcmV0X3Bhc3N3b3JkX2xv
b2t1cCgmcHVycGxlX3NjaGVtYSwgTlVMTCwgc3NfcmVhZF9jb250aW51ZSwgc3RvcmFnZSwKKwlz
ZWNyZXRfcGFzc3dvcmRfbG9va3VwKCZwdXJwbGVfc2NoZW1hLCBrZXlyaW5nX2NhbmNlbGxhYmxl
LAorCQlzc19yZWFkX2NvbnRpbnVlLCBzdG9yYWdlLAogCQkidXNlciIsIHB1cnBsZV9hY2NvdW50
X2dldF91c2VybmFtZShhY2NvdW50KSwKIAkJInByb3RvY29sIiwgcHVycGxlX2FjY291bnRfZ2V0
X3Byb3RvY29sX2lkKGFjY291bnQpLCBOVUxMKTsKIH0KIAogc3RhdGljIHZvaWQKLXNzX3NhdmVf
Y29udGludWUoR09iamVjdCAqb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlc3VsdCwgZ3BvaW50ZXIg
ZGF0YSkKK3NzX3NhdmVfY29udGludWUoR0Vycm9yICplcnJvciwgZ3BvaW50ZXIgZGF0YSkKIHsK
IAlJbmZvU3RvcmFnZSAqc3RvcmFnZSA9IGRhdGE7CiAJUHVycGxlS2V5cmluZ1NhdmVDYWxsYmFj
ayBjYjsKLQlHRXJyb3IgKmVycm9yID0gTlVMTDsKIAlQdXJwbGVBY2NvdW50ICphY2NvdW50Owog
CiAJYWNjb3VudCA9IHN0b3JhZ2UtPmFjY291bnQ7CiAJY2IgPSBzdG9yYWdlLT5jYjsKIAotCXNl
Y3JldF9wYXNzd29yZF9zdG9yZV9maW5pc2gocmVzdWx0LCAmZXJyb3IpOwotCiAJaWYgKGVycm9y
ICE9IE5VTEwpIHsKLQkJaW50IGNvZGUgPSBlcnJvci0+Y29kZTsKLQotCQlzd2l0Y2ggKGNvZGUp
IHsKLQkJCWNhc2UgR19EQlVTX0VSUk9SX1NQQVdOX1NFUlZJQ0VfTk9UX0ZPVU5EOgotCQkJY2Fz
ZSBHX0RCVVNfRVJST1JfSU9fRVJST1I6Ci0JCQkJcHVycGxlX2RlYnVnX2luZm8oImtleXJpbmct
bGlic2VjcmV0IiwKLQkJCQkJIkZhaWxlZCB0byBjb21tdW5pY2F0ZSB3aXRoIFNlY3JldCAiCi0J
CQkJCSJTZXJ2aWNlIChhY2NvdW50IDogJXMgKCVzKSkuXG4iLAotCQkJCQlwdXJwbGVfYWNjb3Vu
dF9nZXRfdXNlcm5hbWUoYWNjb3VudCksCi0JCQkJCXB1cnBsZV9hY2NvdW50X2dldF9wcm90b2Nv
bF9pZChhY2NvdW50KSk7Ci0JCQkJZXJyb3IgPSBnX2Vycm9yX25ldyhQVVJQTEVfS0VZUklOR19F
UlJPUiwKLQkJCQkJUFVSUExFX0tFWVJJTkdfRVJST1JfQkFDS0VOREZBSUwsCi0JCQkJCSJGYWls
ZWQgdG8gY29tbXVuaWNhdGUgd2l0aCBTZWNyZXQgU2VydmljZSAoYWNjb3VudCA6ICVzKS4iLAot
CQkJCQlwdXJwbGVfYWNjb3VudF9nZXRfdXNlcm5hbWUoYWNjb3VudCkpOwotCQkJCWlmIChjYiAh
PSBOVUxMKQotCQkJCQljYihhY2NvdW50LCBlcnJvciwgc3RvcmFnZS0+dXNlcl9kYXRhKTsKLQkJ
CQlnX2Vycm9yX2ZyZWUoZXJyb3IpOwotCQkJCWJyZWFrOwotCi0JCQlkZWZhdWx0OgotCQkJCXB1
cnBsZV9kZWJ1Z19lcnJvcigia2V5cmluZy1saWJzZWNyZXQiLAotCQkJCQkiVW5rbm93biBlcnJv
ciAoYWNjb3VudDogJXMgKCVzKSwgIgotCQkJCQkiZG9tYWluOiAlcywgY29kZTogJWQpOiAlcy5c
biIsCi0JCQkJCXB1cnBsZV9hY2NvdW50X2dldF91c2VybmFtZShhY2NvdW50KSwKLQkJCQkJcHVy
cGxlX2FjY291bnRfZ2V0X3Byb3RvY29sX2lkKGFjY291bnQpLAotCQkJCQlnX3F1YXJrX3RvX3N0
cmluZyhlcnJvci0+ZG9tYWluKSwgY29kZSwKLQkJCQkJCWVycm9yLT5tZXNzYWdlKTsKLQkJCQll
cnJvciA9IGdfZXJyb3JfbmV3KFBVUlBMRV9LRVlSSU5HX0VSUk9SLAotCQkJCQlQVVJQTEVfS0VZ
UklOR19FUlJPUl9CQUNLRU5ERkFJTCwKLQkJCQkJIlVua25vd24gZXJyb3IgKGFjY291bnQgOiAl
cykuIiwKLQkJCQkJcHVycGxlX2FjY291bnRfZ2V0X3VzZXJuYW1lKGFjY291bnQpKTsKLQkJCQlp
ZiAoY2IgIT0gTlVMTCkKLQkJCQkJY2IoYWNjb3VudCwgZXJyb3IsIHN0b3JhZ2UtPnVzZXJfZGF0
YSk7Ci0JCQkJZ19lcnJvcl9mcmVlKGVycm9yKTsKLQkJCQlicmVhazsKLQkJfQotCisJCXNzX2df
ZXJyb3JfdG9fa2V5cmluZ19lcnJvcigmZXJyb3IsIGFjY291bnQpOwogCX0gZWxzZSB7CiAJCXB1
cnBsZV9kZWJ1Z19pbmZvKCJrZXlyaW5nLWxpYnNlY3JldCIsICJQYXNzd29yZCBmb3IgJXMgdXBk
YXRlZC5cbiIsCiAJCQlwdXJwbGVfYWNjb3VudF9nZXRfdXNlcm5hbWUoYWNjb3VudCkpOwotCi0J
CWlmIChjYiAhPSBOVUxMKQotCQkJY2IoYWNjb3VudCwgTlVMTCwgc3RvcmFnZS0+dXNlcl9kYXRh
KTsKIAl9CiAKKwlpZiAoY2IgIT0gTlVMTCkKKwkJY2IoYWNjb3VudCwgZXJyb3IsIHN0b3JhZ2Ut
PnVzZXJfZGF0YSk7CisKKwlnX2NsZWFyX2Vycm9yKCZlcnJvcik7CiAJZ19mcmVlKHN0b3JhZ2Up
OwogfQogCiBzdGF0aWMgdm9pZAorc3Nfc3RvcmVfY29udGludWUoR09iamVjdCAqb2JqZWN0LCBH
QXN5bmNSZXN1bHQgKnJlc3VsdCwgZ3BvaW50ZXIgZGF0YSkKK3sKKwlHRXJyb3IgKmVycm9yID0g
TlVMTDsKKworCXNlY3JldF9wYXNzd29yZF9zdG9yZV9maW5pc2gocmVzdWx0LCAmZXJyb3IpOwor
CisJc3Nfc2F2ZV9jb250aW51ZShlcnJvciwgZGF0YSk7Cit9CgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpDb21taXRzIG1haWxpbmcgbGlzdApDb21taXRz
QHBpZGdpbi5pbQpodHRwczovL3BpZGdpbi5pbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vY29t
bWl0cw==